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 translate导致字体模糊的实例代码
Aug 30 HTML / CSS
在css3中background-clip属性与background-origin属性的用法介绍
Nov 13 HTML / CSS
CSS3支持IE6, 7, and 8的边框border属性
Dec 28 HTML / CSS
一款纯css3实现简单的checkbox复选框和radio单选框
Nov 05 HTML / CSS
总结30个CSS3选择器
Apr 13 HTML / CSS
HTML5文档结构标签
Apr 21 HTML / CSS
Html5内唤醒百度、高德APP的实现示例
May 20 HTML / CSS
html5 offlline 缓存使用示例
Jun 24 HTML / CSS
解析HTML5的存储功能和web SQL的相关操作方法
Feb 19 HTML / CSS
canvas绘制太极图的实现示例
Apr 29 HTML / CSS
HTML5跳转小程序wx-open-launch-weapp的示例代码
Jul 16 HTML / CSS
css样式important规则的正确使用方式
Jun 10 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反射类ReflectionClass和ReflectionObject的使用方法
2013/11/13 PHP
PHP中Session引起的脚本阻塞问题解决办法
2014/04/08 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
2014/11/19 PHP
dess中一个简单的多路委托的实现
2010/07/20 Javascript
ajax java 实现自动完成功能
2012/12/19 Javascript
二叉树先序遍历的非递归算法具体实现
2014/01/09 Javascript
js中定义一个变量并判断其是否为空的方法
2014/05/13 Javascript
jQuery插件zoom实现图片全屏放大弹出层特效
2015/04/15 Javascript
node.js路径处理方法以及绝对路径详解
2021/03/04 Javascript
easyui messager alert 三秒后自动关闭提示的实例
2016/11/07 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
ReactNative页面跳转Navigator实现的示例代码
2017/08/02 Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
2017/08/17 Javascript
详解Vue-cli代理解决跨域问题
2017/09/27 Javascript
在Vue组件中使用 TypeScript的方法
2018/02/28 Javascript
微信小程序实现指定显示行数多余文字去掉用省略号代替
2018/07/25 Javascript
vue获取form表单的值示例
2019/10/29 Javascript
[02:54]DOTA2亚洲邀请赛 VG战队出场宣传片
2015/02/07 DOTA
[00:59]PWL开团时刻DAY7——我在赶
2020/11/06 DOTA
python机器学习之神经网络(三)
2017/12/20 Python
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
python 动态迁移solr数据过程解析
2019/09/04 Python
python代码实现TSNE降维数据可视化教程
2020/02/28 Python
新东方旗下远程教育网站:新东方在线
2020/03/19 全球购物
C++面试题:关于链表和指针
2013/06/05 面试题
护理专业学生的求职信范文
2013/12/11 职场文书
运动会邀请函范文
2014/01/31 职场文书
法律进企业活动方案
2014/03/04 职场文书
委托书怎么写
2014/07/31 职场文书
2014年小学教师工作自我评价
2014/09/22 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
云台山导游词
2015/02/03 职场文书
创业计划书之小型广告公司
2019/10/22 职场文书
Python实现生活常识解答机器人
2021/06/28 Python
JavaScript组合继承详解
2021/11/07 Javascript
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
2022/04/14 Python