HTML5 Canvas——用路径描画线条实例介绍
程序员文章站
2023-11-21 13:02:28
我们可以使用“路径”来描画任何图形。路径,简单来说就是一系列的点以及连接这些点的线。任何Canvas上下文只会有一个“当前路径”,而当context.save()调用时,该“当前路径”并不会... 13-06-09...
原文:
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”弯角效果。
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”弯角效果。