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 相关文章推荐
纯CSS和jQuery实现的在页面顶部显示的进度条效果2例(仿手机浏览器进度条效果)
Apr 16 HTML / CSS
使用css3实现的tab选项卡代码分享
Dec 09 HTML / CSS
CSS3 mask 遮罩的具体使用方法
Nov 03 HTML / CSS
CSS3 不定高宽垂直水平居中的几种方式
Mar 26 HTML / CSS
css3实现平移效果(transfrom:translate)的示例
Nov 13 HTML / CSS
HTML5 Geolocation API的正确使用方法
Dec 04 HTML / CSS
HTML5使用DOM进行自定义控制示例代码
Jun 08 HTML / CSS
HTML5+CSS3:3D展示商品信息示例
Jan 03 HTML / CSS
html5 横向滑动导航栏的方法示例
May 08 HTML / CSS
AmazeUI在模态框中嵌入表单形成模态输入框
Aug 20 HTML / CSS
CSS filter 有什么神奇用途
May 25 HTML / CSS
Html5大屏数据可视化开发的实现
Jun 11 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
mysql5写入和读出乱码解决
2006/11/25 PHP
如何使用php输出时间格式
2013/08/31 PHP
四个PHP非常实用的功能
2015/09/29 PHP
Yii视图CGridView列表用法实例分析
2016/07/12 PHP
PHP自定义函数获取汉字首字母的方法
2016/12/01 PHP
php-msf源码详解
2017/12/25 PHP
JS Timing
2007/04/21 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
详解AngularJS2 Http服务
2017/06/26 Javascript
JavaScript中document.referrer的用法详解
2017/07/04 Javascript
Node.js创建HTTP文件服务器的使用示例
2018/05/11 Javascript
vue实现自定义多选与单选的答题功能
2018/07/05 Javascript
在Create React App中使用CSS Modules的方法示例
2019/01/15 Javascript
vue.js实现备忘录demo
2019/06/26 Javascript
解决layui checkbox 提交多个值的问题
2019/09/02 Javascript
解决Vue打包上线之后部分CSS不生效的问题
2019/11/12 Javascript
[48:32]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python开发之文件操作用法实例
2015/11/13 Python
python实现冒泡排序算法的两种方法
2018/03/10 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
python时间与Unix时间戳相互转换方法详解
2020/02/13 Python
Django模板标签中url使用详解(url跳转到指定页面)
2020/03/19 Python
python else语句在循环中的运用详解
2020/07/06 Python
html5 postMessage解决跨域、跨窗口消息传递方案
2016/12/20 HTML / CSS
HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码
2020/04/10 HTML / CSS
俄罗斯披萨、寿司和面食送货到家服务:2 Берега
2019/12/15 全球购物
static全局变量与普通的全局变量有什么区别
2014/05/27 面试题
入党思想汇报
2014/01/05 职场文书
培训协议书范本
2014/04/22 职场文书
创意婚礼策划方案
2014/05/18 职场文书
公司应聘求职信
2014/06/21 职场文书
自考生自我评价
2019/06/21 职场文书
高中语文教材(文学文化常识大全一)
2019/08/13 职场文书
创业计划书之暑假培训班
2019/11/09 职场文书
如何用python插入独创性声明
2021/03/31 Python
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers