HTML5 Canvas——用路径描画线条实例介绍


Posted in HTML / CSS onJune 09, 2013

原文:
http://www.lifelaf.com/blog/?p=371
本文翻译自Steve Fulton & Jeff Fulton HTML5 Canvas, Chapter 2, “Using Paths to Create Lines”

对于HTML5 Canvas,我们可以使用“路径”来描画任何图形。路径,简单来说就是一系列的点以及连接这些点的线。任何Canvas上下文只会有一个“当前路径”,而当context.save()调用时,该“当前路径”并不会被保存。

路径的开始与结束

调用beginPath()可以开始一个路径,而调用closePath()则会令该路径结束。如果连接路径中的点,那么这种连接就构成了一个“子路径”。如果“子路径”中最后一个点与其自身的第一个点相连,我们就认为该“子路径”是“闭合”的。

线条的描绘

最基本的路径操作由反复调用moveTo()和lineTo()命令组成。比如以下这个例子:

复制代码
代码如下:

function drawScreen() {
context.strokeStyle = "black";
context.lineWidth = 10;
context.lineCap = 'square';
context.beginPath();
context.moveTo(20, 0);
context.lineTo(100, 0);
context.stroke();
context.closePath();
}

在上面的例子中,我们描画了一条水平的、宽度为10个像素的线段;与此同时,我们还设定了lineCap与strokeStyle属性。以下是一些常用的属性列表:

lineCap
lineCap定义了在Canvas中线段两头的样式,可设置为以下三个值中的一个:

butt。默认值;在线段的两头添加平直边缘。
round。在线段的两头各添加一个半圆形线帽。线帽直径等于线段的宽度。
square。在线段的两头添加正方形线帽。线帽边长等于线段的宽度。
lineJoin
lineJoin定义了两条线段相交处的弯角样式。以下为三个可选的值:

miter。默认值;创建一个尖角。可以通过设置miterLimit属性来对尖角长度进行限制 — miterLimit为尖角长度和线条宽度之比的最大值,默认为10。
bevel。创建一个斜角。
round。创建一个圆角。
lineWidth
lineWidth定义了线条的粗细,默认为1.0。

strokeStyle
strokeStyle定义了用于渲染线条的颜色等样式。

译注:当lineJoin设定为miter,但是尖角长度超过了miterLimit的限制时,Canvas将显示“bevel”弯角效果。

HTML / CSS 相关文章推荐
前端面试必备之CSS3的新特性
Sep 05 HTML / CSS
用CSS3写的模仿iPhone中的返回按钮
Apr 04 HTML / CSS
css3 实现元素弧线运动的示例代码
Apr 24 HTML / CSS
纯CSS3实现移动端展开和收起效果的示例代码
Apr 26 HTML / CSS
详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用
Aug 24 HTML / CSS
深入剖析webstorage[html5的本地数据处理]
Jul 11 HTML / CSS
html5 Canvas画图教程(9)—canvas中画出矩形和圆形
Jan 09 HTML / CSS
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
Jan 31 HTML / CSS
html5 offlline 缓存使用示例
Jun 24 HTML / CSS
HTML5 canvas基本绘图之填充样式实现
Jun 27 HTML / CSS
做一个能自适应高度的textarea的示例代码
Sep 06 HTML / CSS
CSS 实现多彩、智能的阴影效果
May 12 HTML / CSS
html5的画布canvas——画出简单的矩形、三角形实例代码
Jun 09 #HTML / CSS
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
Jun 09 #HTML / CSS
HTML5视频支持检测(检查浏览器是否支持视频播放)
Jun 08 #HTML / CSS
HTML5中如何显示视频呢 HTML5视频播放demo
Jun 08 #HTML / CSS
HTML5使用DOM进行自定义控制示例代码
Jun 08 #HTML / CSS
HTML5拖拽文件到浏览器并实现文件上传下载功能代码
Jun 06 #HTML / CSS
将HTML5 Canvas的内容保存为图片借助toDataURL实现
May 20 #HTML / CSS
You might like
PHP新手NOTICE错误常见解决方法
2011/12/07 PHP
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
jQuery中delegate()方法用法实例
2015/01/19 Javascript
JavaScript对象数组排序函数及六个用法
2015/12/23 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
zTree插件下拉树使用入门教程
2016/04/11 Javascript
js 判断一组日期是否是连续的简单实例
2016/07/11 Javascript
js实现截图保存图片功能的代码示例
2017/02/16 Javascript
Angularjs实现下拉框联动的示例代码
2017/08/22 Javascript
js中this对象用法分析
2018/01/05 Javascript
JavaScript实现获取select下拉框中第一个值的方法
2018/02/06 Javascript
关于Angularjs中跨域设置白名单问题
2018/04/17 Javascript
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义
2019/08/20 Javascript
js实现左右轮播图
2020/01/09 Javascript
Python中关于字符串对象的一些基础知识
2015/04/08 Python
利用Python如何生成随机密码
2016/04/20 Python
Python的装饰器用法学习笔记
2016/06/24 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
python编程实现随机生成多个椭圆实例代码
2018/01/03 Python
CentOS7下python3.7.0安装教程
2018/07/30 Python
python实现微信每日一句自动发送给喜欢的人
2019/04/29 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
2020/04/14 Python
用pip给python安装matplotlib库的详细教程
2021/02/24 Python
18-35岁旅游团的全球领导者:Contiki
2017/02/08 全球购物
北美领先的智能产品购物网站:Wellbots
2018/06/11 全球购物
运动鞋、街头服装、手表和手袋的实时市场:StockX
2020/11/25 全球购物
聘任书模板
2014/03/29 职场文书
主要负责人任命书
2014/06/06 职场文书
中专生自荐信
2014/06/25 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
保护地球的宣传语
2015/07/13 职场文书
PyTorch 如何检查模型梯度是否可导
2021/06/05 Python
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/06 其他游戏