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 相关文章推荐
html5+css3之动画在webapp中的应用
Nov 21 HTML / CSS
CSS3实现伪类hover离开时平滑过渡效果示例
Aug 10 HTML / CSS
HTML5 Geolocation API的正确使用方法
Dec 04 HTML / CSS
利用html5 canvas动态画饼状图的示例代码
Apr 02 HTML / CSS
利用html5 file api读取本地文件示例(如图片、PDF等)
Mar 07 HTML / CSS
canvas实现圆绘制的示例代码
Sep 11 HTML / CSS
html5播放视频且动态截图实现步骤与代码(支持safari其他未测试)
Jan 06 HTML / CSS
html5实现多文件的上传示例代码
Feb 13 HTML / CSS
使用分层画布来优化HTML5渲染的教程
May 08 HTML / CSS
基于html5 DeviceOrientation 实现微信摇一摇功能
Sep 25 HTML / CSS
html5组织内容_动力节点Java学院整理
Jul 10 HTML / CSS
移动端html5模拟长按事件的实现方法
Sep 30 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
第五节--克隆
2006/11/16 PHP
win7计划任务定时执行PHP脚本设置图解
2014/05/09 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
2016/03/18 PHP
PHP迭代器接口Iterator用法分析
2017/12/28 PHP
JS 实现Table相同行的单元格自动合并示例代码
2013/08/27 Javascript
基于jQuery实现的QQ表情插件
2015/08/25 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
2015/10/27 Javascript
js实现仿微博滚动显示信息的效果
2015/12/21 Javascript
JavaScript事件详细讲解
2016/06/27 Javascript
jQuery的ajax和遍历数组json实例代码
2016/08/01 Javascript
JS简单实现自定义右键菜单实例
2017/05/31 Javascript
判断div滑动到底部的scroll实例代码
2017/11/15 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
2020/03/11 Javascript
JS实现悬浮球只在一侧滑动并且是横屏状态下
2020/08/19 Javascript
用vue写一个日历
2020/11/02 Javascript
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
[02:26]2018DOTA2亚洲邀请赛赛前采访-Newbee篇
2018/04/03 DOTA
[00:12]DAC2018 天才少年转战三号位,他的SOLO是否仍如昔日般强大?
2018/04/06 DOTA
python实现在windows下操作word的方法
2015/04/28 Python
python中list常用操作实例详解
2015/06/03 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
python实例化对象的具体方法
2020/06/17 Python
CSS超出文本指定宽度用省略号代替和文本不换行
2016/05/05 HTML / CSS
阿联酋电子产品购物网站:Menakart
2017/09/15 全球购物
法国创作个性化T恤衫和其他定制产品平台:Tostadora
2018/04/08 全球购物
学习心得体会
2014/01/01 职场文书
我的梦想演讲稿
2014/04/30 职场文书
安全先进个人材料
2014/12/29 职场文书
2015年大学生村官工作总结
2015/04/21 职场文书
2015年大学生工作总结
2015/04/21 职场文书
毛主席纪念堂观后感
2015/06/17 职场文书
学生会干部任命书
2015/09/21 职场文书
2016年中秋节慰问信
2015/12/01 职场文书
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
2022/04/18 MySQL