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 3D位移translate效果实例介绍
May 03 HTML / CSS
css3 box-shadow阴影(外阴影与外发光)图示讲解
Aug 11 HTML / CSS
CSS实现的一闪而过的图片闪光效果
Apr 23 HTML / CSS
css3实现背景模糊的三种方式(小结)
May 15 HTML / CSS
html5/css3响应式页面开发总结
Oct 16 HTML / CSS
详解Html5原生拖拽操作
Jan 12 HTML / CSS
Javascript 高级手势使用介绍
Apr 21 HTML / CSS
HTML5未来发展趋势
Feb 01 HTML / CSS
h5使用canvas画布实现手势解锁
Jan 04 HTML / CSS
使用iframe+postMessage实现页面跨域通信的示例代码
Jan 14 HTML / CSS
详解如何在登录过期后跳出Ifram框架
Sep 10 HTML / CSS
如何通过 CSS 写出火焰效果
Mar 24 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
完美解决dedecms中的[html][/html]和[code][/code]问题
2007/03/20 PHP
使用xampp搭建运行php虚拟主机的详细步骤
2015/10/21 PHP
CI框架数据库查询之join用法分析
2016/05/18 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
laravel 中某一字段自增、自减的例子
2019/10/11 PHP
基于Jquery的文字自动截取(提供源代码)
2011/08/09 Javascript
JQuery一种取同级值的方式(比如你在GridView中)
2012/03/15 Javascript
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
Extjs 继承Ext.data.Store不起作用原因分析及解决
2013/04/15 Javascript
jquery库或JS文件在eclipse下报错问题解决方法
2014/04/17 Javascript
详解JavaScript基于面向对象之继承实例
2015/12/16 Javascript
JavaScript性能优化总结之加载与执行
2016/08/11 Javascript
AngularJS 自定义指令详解及示例代码
2016/08/17 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
2017/03/04 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
详解Node项目部署到云服务器上
2017/07/12 Javascript
JavaScript快速调试的两个技巧
2020/11/04 Javascript
Python实现简单拆分PDF文件的方法
2015/07/30 Python
利用Python抓取行政区划码的方法
2016/11/28 Python
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
python微元法计算函数曲线长度的方法
2018/11/08 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
pandas使用之宽表变窄表的实现
2020/04/12 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
django使用graphql的实例
2020/09/02 Python
用CSS3打造HTML5的Logo(实现代码)
2016/06/16 HTML / CSS
CSS3圆角边框和边界图片效果实例
2016/07/01 HTML / CSS
LA MER海蓝之谜美国官网:传奇面霜
2016/08/27 全球购物
美体小铺瑞典官方网站:The Body Shop瑞典
2018/01/27 全球购物
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
安全保证书范文
2014/04/29 职场文书
财产分割协议书范本
2014/11/03 职场文书
教师个人总结范文
2015/02/11 职场文书
婚宴主持词
2015/06/30 职场文书
关于golang高并发的实现与注意事项说明
2021/05/08 Golang
浏览器常用基本操作之python3+selenium4自动化测试(基础篇3)
2021/05/21 Python