Html5画布_动力节点Java学院整理


Posted in HTML / CSS onJuly 13, 2017

1,Canvas的定义

<canvas id="myCanvas" width="400" height="200">

默认<canvas>画布在页面上会显示一块空白、无边框的矩形。为了让其显示轮廓,通过定义样式规则给其添加一个虚线边框:

canvas {
    border: 1px dashed black;
}

2,获取Canvas的上下文对象

要完成绘图任务,首先我们要拿到<canvas>对象,接着取得其二维绘图上下文。

下面样例演示在页面加载完毕时获取绘图上下文:

<script>
    window.onload = function() {
        var canvas = document.getElementById("myCanvas");
        var context = canvas.getContext("2d");
 
        //这里写绘图代码
    }
</script>

3,画直线

(1)下面绘制一条起点是(50,50),终点是(150,150)的直线线条

context.moveTo(50, 50);
context.lineTo(150, 150);
context.stroke();

Html5画布_动力节点Java学院整理

(2)使用lineWidth、strokeStyle属性分别设置线条的宽度和颜色

//线条宽度
context.lineWidth = 10;
 
//线条颜色(支持颜色编码与rgb()函数)
context.strokeStyle = "#cd2828";
context.strokeStyle = "rgb(205,40,40)";
 
context.moveTo(50, 50);
context.lineTo(150, 150);
context.stroke();

Html5画布_动力节点Java学院整理

(3)使用 lineCap 属性设置线条两端的形状(线头类型):

  1. butt:方头(默认值)
  2. round:圆头
  3. square:加长方头(效果与butt类似,但会在线条的两头各增加一半线宽的长度)
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
 
//线条宽度
context.lineWidth = 10;
//线条颜色
context.strokeStyle = "#cd2828";
 
//第一条直线,默认方头
context.moveTo(50, 50);
context.lineTo(250, 50);
context.stroke();
 
//第二条直线,使用圆头
context.beginPath();
context.moveTo(50, 100);
context.lineTo(250, 100);
context.lineCap = "round";
context.stroke();
 
//第三条直线,使用加长方头
context.beginPath();
context.moveTo(50, 150);
context.lineTo(250, 150);
context.lineCap = "square";
context.stroke();

Html5画布_动力节点Java学院整理

注:绘图上下文的beginPath()方法

上面样例可以看到每次开始新线段的绘制时,都要调用 beginPath() 方法。

如果没有这一步操作,那么每次调用 stroke() 都会把画布上原有的线段再重新绘制一边。特别像上面的例子,绘制新线段时都要修改上下文属性,如果不调用 beginPath() 方法,那么原有的直线也会使用新的样式绘制。

HTML / CSS 相关文章推荐
CSS3 3D立方体效果示例-transform也不过如此
Dec 05 HTML / CSS
10个很棒的 CSS3 开发工具 推荐
May 16 HTML / CSS
CSS3制作皮卡丘动画壁纸的示例
Nov 02 HTML / CSS
css3弹性盒子flex实现三栏布局的实现
Nov 12 HTML / CSS
HTML5之WebGL 3D概述(下)—借助类库开发及框架介绍
Jan 31 HTML / CSS
x-ua-compatible content=”IE=7, IE=9″意思理解
Jul 22 HTML / CSS
使用phonegap获取设备的一些信息方法
Mar 31 HTML / CSS
Html5调用手机摄像头并实现人脸识别的实现
Dec 21 HTML / CSS
跨域修改iframe页面内容详解
Oct 31 HTML / CSS
如何给HTML标签中的文本设置修饰线
Nov 18 HTML / CSS
使用数据结构给女朋友写个Html5走迷宫游戏
Nov 26 HTML / CSS
使用CSS3实现按钮悬停闪烁动态特效代码
Aug 30 HTML / CSS
html5应用缓存_动力节点Java学院整理
Jul 13 #HTML / CSS
html5理解head_动力节点Java学院整理
Jul 13 #HTML / CSS
HTML5拖放功能_动力节点Java学院整理
Jul 13 #HTML / CSS
html5视频播放_动力节点Java学院整理
Jul 13 #HTML / CSS
HTML5之web workers_动力节点Java学院整理
Jul 17 #HTML / CSS
Html5之svg可缩放矢量图形_动力节点Java学院整理
Jul 17 #HTML / CSS
HTML5等待加载动画效果
Jul 27 #HTML / CSS
You might like
PHP 第三节 变量介绍
2012/04/28 PHP
获取URL文件名后缀
2013/10/24 PHP
PHP版本常用的排序算法汇总
2015/12/20 PHP
讲解WordPress中用于获取评论模板和搜索表单的PHP函数
2015/12/28 PHP
ThinkPHP3.2.1图片验证码实现方法
2016/08/19 PHP
javascript对数组的常用操作代码 数组方法总汇
2011/01/27 Javascript
jquery序列化form表单使用ajax提交后处理返回的json数据
2014/03/03 Javascript
谈一谈JS消息机制和事件机制的理解
2016/04/14 Javascript
jQuery图片轮播插件——前端开发必看
2016/05/31 Javascript
AngularJS控制器详解及示例代码
2016/08/16 Javascript
jQuery Validate验证框架详解(推荐)
2016/12/17 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
详解vue模拟加载更多功能(数据追加)
2017/06/23 Javascript
Angular排序实例详解
2017/06/28 Javascript
十分钟带你快速了解React16新特性
2017/11/10 Javascript
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
typescript nodejs 依赖注入实现方法代码详解
2019/07/21 NodeJs
Angular6使用forRoot() 注册单一实例服务问题
2019/08/27 Javascript
整理 node-sass 安装失败的原因及解决办法(小结)
2020/02/19 Javascript
vue使用echarts图表自适应的几种解决方案
2020/12/04 Vue.js
解决pycharm工程启动卡住没反应的问题
2019/01/19 Python
使用Tensorflow将自己的数据分割成batch训练实例
2020/01/20 Python
Python 随机按键模拟2小时
2020/12/30 Python
amazeui 验证按钮扩展的实现
2020/08/21 HTML / CSS
世界上最全面的草药补充剂和顶级品牌维生素网站:HerbsPro
2019/01/20 全球购物
数控专业应届生求职信
2013/11/27 职场文书
高一物理教学反思
2014/01/24 职场文书
2014年“四风”问题个人整改措施
2014/09/17 职场文书
无子女夫妻离婚协议书(4篇)
2014/10/20 职场文书
车间主任岗位职责范本
2015/04/08 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书
python实现股票历史数据可视化分析案例
2021/06/10 Python
Python实现抖音热搜定时爬取功能
2022/03/16 Python
HTML CSS 一个标签实现带动画的抖音LOGO
2022/04/26 HTML / CSS
pytorch实现加载保存查看checkpoint文件
2022/07/15 Python