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制作动态进度条以及附加jQuery百分比数字显示
Dec 13 HTML / CSS
CSS+jQuery实现的在线答题功能
Apr 25 HTML / CSS
CSS3绘制有活力的链接下划线
Jul 14 HTML / CSS
浅谈CSS3 动画卡顿解决方案
Jan 02 HTML / CSS
HTML5 Canvas绘制五星红旗
May 04 HTML / CSS
H5调用相机拍照并压缩图片的实例代码
Jul 20 HTML / CSS
html5超简单的localStorage实现记住密码的功能实现
Sep 07 HTML / CSS
Canvas与图片压缩的示例代码
Nov 28 HTML / CSS
关于canvas绘制模糊问题的解决方法
Sep 24 HTML / CSS
如何通过 CSS 写出火焰效果
Mar 24 HTML / CSS
HTML+CSS制作心跳特效的实现
May 26 HTML / CSS
解决flex布局中子项目尺寸不受flex-shrink限制
May 11 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
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
关于使用runtimeStyle属性问题讨论文章
2007/03/08 Javascript
JS写的数字拼图小游戏代码[学习参考]
2008/10/29 Javascript
jQuery实现验证码功能
2017/03/17 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
2017/05/26 Javascript
React如何解决fetch跨域请求时session失效问题
2018/11/02 Javascript
详解React项目如何修改打包地址(编译输出文件地址)
2019/03/21 Javascript
vue-test-utils初使用详解
2019/05/23 Javascript
JS Math对象与Math方法实例小结
2019/07/05 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
[02:12]探秘2016国际邀请赛中国区预选赛选手房间
2016/06/25 DOTA
Python守护进程(daemon)代码实例
2015/03/06 Python
详解Python开发中如何使用Hook技巧
2017/11/01 Python
Python3 中文文件读写方法
2018/01/23 Python
python中的RSA加密与解密实例解析
2019/11/18 Python
在python中计算ssim的方法(与Matlab结果一致)
2019/12/19 Python
pytorch-RNN进行回归曲线预测方式
2020/01/14 Python
GitHub上值得推荐的8个python 项目
2020/10/30 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
2020/12/17 Python
Python中lru_cache的使用和实现详解
2021/01/25 Python
html5使用html2canvas实现浏览器截图的示例
2017/08/31 HTML / CSS
详解canvas在圆弧周围绘制文本的两种写法
2018/05/22 HTML / CSS
Lookfantastic澳大利亚官网:英国知名美妆购物网站
2021/01/07 全球购物
戴尔新加坡官网:Dell Singapore
2020/12/13 全球购物
大二自我鉴定范文
2013/10/05 职场文书
历史学专业个人的自我评价
2013/10/13 职场文书
医院护士见习期自我鉴定
2014/09/15 职场文书
2014年党员发展工作总结
2014/12/02 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
2015年党风廉政建设工作总结
2015/04/09 职场文书
小学生勤俭节约倡议书
2015/04/29 职场文书
Redis高并发缓存架构性能优化
2022/05/15 Redis