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实现一个div设置多张背景图片及background-image属性实例演示
Aug 10 HTML / CSS
CSS3 简单又实用的5个属性
Mar 04 HTML / CSS
css3实现二维码扫描特效的示例
Oct 29 HTML / CSS
HTML5如何实现元素拖拽
Mar 11 HTML / CSS
canvas像素画板的实现代码
Nov 21 HTML / CSS
html5+css3实现一款注册表单实例
Apr 17 HTML / CSS
HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线
Jan 01 HTML / CSS
HTML 5.1来了 9月份正式发布 更新内容预览
Apr 26 HTML / CSS
HTML5 常见面试题之PC端和移动端区别介绍
Jan 22 HTML / CSS
使用html5 canvas绘制圆环动效
Jun 03 HTML / CSS
H5离线存储Manifest原理及使用
Apr 28 HTML / CSS
css 边框添加四个角的实现代码
Oct 16 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
Windows下PHP的任意文件执行漏洞
2006/10/09 PHP
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
Yii的Srbac插件用法详解
2016/07/14 PHP
收藏Javascript中常用的55个经典技巧
2007/08/12 Javascript
myeclipse安装jQuery插件的方法
2011/03/29 Javascript
NodeJS框架Express的模板视图机制分析
2011/07/19 NodeJs
javascript实现漂亮的拖动层,窗口拖拽特效
2015/04/24 Javascript
JavaScript 定时器 SetTimeout之定时刷新窗口和关闭窗口(代码超简单)
2016/02/26 Javascript
基于Jquery和html5实现炫酷的3D焦点图动画
2016/03/02 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
2016/06/24 Javascript
Javascript实现前端简单的路由实例
2016/09/11 Javascript
JS刷新父窗口的几种方式小结(推荐)
2016/11/09 Javascript
Node.js微信 access_token ( jsapi_ticket ) 存取与刷新的示例
2017/09/30 Javascript
详解async/await 异步应用的常用场景
2019/05/13 Javascript
vue发送websocket请求和http post请求的实例代码
2019/07/11 Javascript
使用Vant完成Dialog弹框案例
2020/11/11 Javascript
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
python基础教程之lambda表达式使用方法
2014/02/12 Python
Python中Django 后台自定义表单控件
2017/03/28 Python
python抓取网页中链接的静态图片
2018/01/29 Python
Python OpenCV获取视频的方法
2018/02/28 Python
python统计多维数组的行数和列数实例
2018/06/23 Python
Python3 列表,数组,矩阵的相互转换的方法示例
2019/08/05 Python
Django项目基础配置和基本使用过程解析
2019/11/25 Python
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
python程序文件扩展名知识点详解
2020/02/27 Python
Python稀疏矩阵及参数保存代码实现
2020/04/18 Python
Python多线程实现支付模拟请求过程解析
2020/04/21 Python
Pyinstaller加密打包应用的示例代码
2020/06/11 Python
马克华菲官方商城:Mark Fairwhale
2016/09/04 全球购物
斯洛伐克电子产品购物网站:DATART
2020/04/05 全球购物
2014年安全生产责任书
2014/07/22 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
向国旗敬礼活动总结范文2014
2014/09/27 职场文书
小学班主任工作随笔
2015/08/15 职场文书