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 media queries + jQuery实现响应式导航
Sep 30 HTML / CSS
推荐10个CSS3 制作的创意下拉菜单效果
Feb 11 HTML / CSS
纯CSS3实现8组超炫酷鼠标滑过图片动画
Mar 16 HTML / CSS
CSS3动画:5种预载动画效果实例
Apr 05 HTML / CSS
CSS 说明横向进度条最后显示文字的实现代码
Nov 10 HTML / CSS
HTML5 canvas基本绘图之绘制阴影效果
Jun 27 HTML / CSS
HTML5 canvas基本绘图之绘制线段
Jun 27 HTML / CSS
HTML5打开本地app应用的方法
Mar 31 HTML / CSS
HTML5 解析规则分析
Aug 14 HTML / CSS
关于HTML5的安全问题开发人员需要牢记的
Jun 21 HTML / CSS
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
Jan 23 HTML / CSS
HTML5 创建canvas元素示例代码
Jun 04 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字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
深入掌握include_once与require_once的区别
2013/06/17 PHP
使用PHP获取汉字的拼音(全部与首字母)
2013/06/27 PHP
destoon实现调用图文新闻的方法
2014/08/21 PHP
php判断用户是否手机访问代码
2015/06/08 PHP
TP5框架请求响应参数实例分析
2019/10/17 PHP
PHP实现简单用户登录界面
2019/10/23 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
测试你的JS的掌握程度的代码
2009/12/09 Javascript
用JavaScript仿PS里的羽化效果代码
2011/12/20 Javascript
SwfUpload在IE10上不出现上传按钮的解决方法
2013/06/25 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
js如何获取object类型里的键值
2014/02/18 Javascript
使用Plupload实现直接上传附件至七牛云存储
2014/12/26 Javascript
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
2017/08/30 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
Vue工程模板文件 webpack打包配置方法
2017/12/26 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
2019/05/23 Javascript
vue实现评论列表功能
2019/10/25 Javascript
原生JavaScript实现的无缝滚动功能详解
2020/01/17 Javascript
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
2016/11/16 Python
PyTorch上实现卷积神经网络CNN的方法
2018/04/28 Python
Django学习教程之静态文件的调用详解
2018/05/08 Python
python进程和线程用法知识点总结
2019/05/28 Python
ansible动态Inventory主机清单配置遇到的坑
2020/01/19 Python
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
2013/11/18 HTML / CSS
详解CSS3浏览器兼容
2016/12/14 HTML / CSS
CSS3实现文本垂直排列的方法
2018/07/10 HTML / CSS
加利福尼亚州威尼斯的女性奢侈品设计师服装和概念店:Mona Moore
2018/09/13 全球购物
有趣的流行文化T恤、马克杯、手机壳和更多:Look Human
2019/01/07 全球购物
马德里竞技官方网上商店:Atletico Madrid Shop
2019/03/31 全球购物
演讲稿怎么写才完美
2014/01/02 职场文书
护理专业优质毕业生自荐书
2014/01/31 职场文书
银行工作检查书范文
2014/01/31 职场文书
员工离职通知函
2015/04/25 职场文书
公司的力量观后感
2015/06/05 职场文书