这篇文章主要介绍了HTML5 Convas APIs方法详解,本文罗列了Convas APIs中的大部份方法,给出这些方法的中文注释,需要的朋友可以参考下
☆ canvas.getContext('2d')LnJHTML5中文学习网 - HTML5先行者学习网
不可在convas中直接绘图,必须用该方法获得其二维空间绘图上 LnJHTML5中文学习网 - HTML5先行者学习网
下文。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.beginPath()LnJHTML5中文学习网 - HTML5先行者学习网
表示开始新的路径绘制。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.isPointInPath(x, y)LnJHTML5中文学习网 - HTML5先行者学习网
判断某个点是否在路径上。在坐标系被转换后该方法不适用。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.moveTo(x,y)LnJHTML5中文学习网 - HTML5先行者学习网
相当于将画笔从画板提起,笔尖离开画板,然后再将笔尖定位在 LnJHTML5中文学习网 - HTML5先行者学习网
(x,y)坐标处,在这个新的位置开始新的绘制。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.lineTo(x, y)LnJHTML5中文学习网 - HTML5先行者学习网
相当于画笔笔尖不离开画板,画笔笔尖从当前坐标位置移动至 LnJHTML5中文学习网 - HTML5先行者学习网
(x,y)坐标处,绘制一条线段。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.stroke()LnJHTML5中文学习网 - HTML5先行者学习网
在convas上绘图后,一些绘制操作必须调用该方法才能让绘制内 LnJHTML5中文学习网 - HTML5先行者学习网
容显示。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.save()LnJHTML5中文学习网 - HTML5先行者学习网
该方法保存convas的当前状态,无论以后对convas坐任何改变, LnJHTML5中文学习网 - HTML5先行者学习网
只要在做这些改变前保存convas状态,以后就可以调用 LnJHTML5中文学习网 - HTML5先行者学习网
context.restore()方法恢复到保存的这个状态。通常在一段新绘制 LnJHTML5中文学习网 - HTML5先行者学习网
或修改操作前应该保存convas的原始状态(没有进行任何绘制或更改 LnJHTML5中文学习网 - HTML5先行者学习网
),每次在一段新绘制或修改操作结束后在将其恢复到原始状态。这 LnJHTML5中文学习网 - HTML5先行者学习网
样有利于以后的绘制操作。LnJHTML5中文学习网 - HTML5先行者学习网
实际上,canvas的2d绘图环境context的许多属性和一些方法与状 LnJHTML5中文学习网 - HTML5先行者学习网
态有关,每个属性的值被改变(或者使用某些方法改变绘图状态), LnJHTML5中文学习网 - HTML5先行者学习网
绘图状态就改变。若在每次改变后都保存,则一个属性的多个状态会 LnJHTML5中文学习网 - HTML5先行者学习网
以栈(stack)的形式保存,可以依照栈的顺序多次调用restore()方 LnJHTML5中文学习网 - HTML5先行者学习网
法来回到相应保存的状态。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.translate(x, y)LnJHTML5中文学习网 - HTML5先行者学习网
该方法将当前坐标原点移动到(x, y)处。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.restore()LnJHTML5中文学习网 - HTML5先行者学习网
恢复convas状态为上一次保存的状态。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.closePath()LnJHTML5中文学习网 - HTML5先行者学习网
This command is very similar in behavior to the lineTo LnJHTML5中文学习网 - HTML5先行者学习网
function, with the difference being that the destination is LnJHTML5中文学习网 - HTML5先行者学习网
automatically assumed to be the LnJHTML5中文学习网 - HTML5先行者学习网
origination of the path. However, the closePath also informs LnJHTML5中文学习网 - HTML5先行者学习网
the canvas that the current shape has closed or formed a LnJHTML5中文学习网 - HTML5先行者学习网
completely contained area. This will be useful for future LnJHTML5中文学习网 - HTML5先行者学习网
fills and strokes. LnJHTML5中文学习网 - HTML5先行者学习网
At this point, you are free to continue with more LnJHTML5中文学习网 - HTML5先行者学习网
segments in your path to create additional subpaths. Or you LnJHTML5中文学习网 - HTML5先行者学习网
can beginPath at any time to start over and clear the path LnJHTML5中文学习网 - HTML5先行者学习网
list entirely.LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.fill();LnJHTML5中文学习网 - HTML5先行者学习网
在设置填充样式后填充闭合路径。调用该方法后不必再调用 LnJHTML5中文学习网 - HTML5先行者学习网
context.stroke()方法。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.fillRect(x, y, width, height)LnJHTML5中文学习网 - HTML5先行者学习网
在(x, y)处绘制并填充宽和长为(width, height)的矩形区域。调 LnJHTML5中文学习网 - HTML5先行者学习网
用该方法后不必再调用context.stroke()方法。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.strokeRect(x, y, width, height) LnJHTML5中文学习网 - HTML5先行者学习网
在(x, y)处绘制宽和长为(width, height)的矩形轮廓。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.clearRect(x, y, width, height)LnJHTML5中文学习网 - HTML5先行者学习网
清理位置(矩形的左上角)在(x, y,),大小为(width, height) LnJHTML5中文学习网 - HTML5先行者学习网
的矩形区域。LnJHTML5中文学习网 - HTML5先行者学习网
Remove any content from the rectangular area and reset it LnJHTML5中文学习网 - HTML5先行者学习网
to its original, transparent color. LnJHTML5中文学习网 - HTML5先行者学习网
The ability to clear rectangles in the canvas is core to LnJHTML5中文学习网 - HTML5先行者学习网
creating animations and games using the HTML5 Canvas API. By LnJHTML5中文学习网 - HTML5先行者学习网
repeatedly drawing and clearing sections of the canvas, it LnJHTML5中文学习网 - HTML5先行者学习网
is possible to present the illusion of animation, and many LnJHTML5中文学习网 - HTML5先行者学习网
examples of this already exist on the Web. However, to LnJHTML5中文学习网 - HTML5先行者学习网
create animations that perform smoothly, you will need to LnJHTML5中文学习网 - HTML5先行者学习网
utilize clipping features and perhaps even a secondary LnJHTML5中文学习网 - HTML5先行者学习网
buffered canvas to minimize the flickering caused by LnJHTML5中文学习网 - HTML5先行者学习网
frequent canvas clears.LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.drawImage( )LnJHTML5中文学习网 - HTML5先行者学习网
该方法有三个重载,可将图像绘制在canvas上。图像来源可以是 LnJHTML5中文学习网 - HTML5先行者学习网
页面中的img标记、JS中的image对象和video的一帧。LnJHTML5中文学习网 - HTML5先行者学习网
•context.drawImage(img, x, y)LnJHTML5中文学习网 - HTML5先行者学习网
在(x, y)处用图像img绘制图像。当canvas的大小大于图像时 LnJHTML5中文学习网 - HTML5先行者学习网
,整个图像被绘制;当图像大于canvas时,多余的部分被裁剪。LnJHTML5中文学习网 - HTML5先行者学习网
•context.drawImage(img, x, y, w, h)LnJHTML5中文学习网 - HTML5先行者学习网
在(x, y)处用图像img绘制长和宽为(w, h)的矩形区域。图像 LnJHTML5中文学习网 - HTML5先行者学习网
的大小将改变为(w, h)。LnJHTML5中文学习网 - HTML5先行者学习网
•context.drawImage(img, imgx, imgy, imgw, imgh, cx, cy, LnJHTML5中文学习网 - HTML5先行者学习网
cw, ch)LnJHTML5中文学习网 - HTML5先行者学习网
将一个img图像作为绘制对象,裁剪img上位置为(imgx, imgy LnJHTML5中文学习网 - HTML5先行者学习网
)大小为(imgw, imgh)的区域,绘制在canvas内位置为(cx, cy)LnJHTML5中文学习网 - HTML5先行者学习网
处绘制大小为(cw, ch)的区域。LnJHTML5中文学习网 - HTML5先行者学习网
如果图像上裁剪区域超出了图像范围,则会引发异常。LnJHTML5中文学习网 - HTML5先行者学习网
•context.drawImage(video, vx, vy, vw, vh, cx, cy, cw, ch)LnJHTML5中文学习网 - HTML5先行者学习网
将一个video对象作为绘制对象,抓取video上位置为(vx, vy LnJHTML5中文学习网 - HTML5先行者学习网
)大小为(vw, vh)的一帧,在canvas上位置为(cx, cy)处绘制大 LnJHTML5中文学习网 - HTML5先行者学习网
小为(cw, ch)的区域。LnJHTML5中文学习网 - HTML5先行者学习网
此外,drawImage()的第一个参数也可以是另一个 canvas。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.getImageData(x, y, width, height)LnJHTML5中文学习网 - HTML5先行者学习网
该方法从canvas内位置为(x, y)处,获得大小(width, height) LnJHTML5中文学习网 - HTML5先行者学习网
一块像素区域,返回值为一个ImageData对象。ImageData有width, LnJHTML5中文学习网 - HTML5先行者学习网
height和data三个属性。LnJHTML5中文学习网 - HTML5先行者学习网
data属性是一个像素数组,数组中每连续的四个元素代表一个像 LnJHTML5中文学习网 - HTML5先行者学习网
素,四个连续元素依次含有RGBA的颜色与透明度信息。四个连续的元 LnJHTML5中文学习网 - HTML5先行者学习网
素必须属于一个像素,第一个元素的位置不是随意取的。LnJHTML5中文学习网 - HTML5先行者学习网
像素数组是按照从上到下,从左到右的顺序在canvas中指定区域 LnJHTML5中文学习网 - HTML5先行者学习网
扫描获取。像素数组的元素个数为width * height * 4。要获得特定 LnJHTML5中文学习网 - HTML5先行者学习网
位置的像素信息。LnJHTML5中文学习网 - HTML5先行者学习网
使用了该方法的Web页面若用浏览器以本地文件方式打开不会正常 LnJHTML5中文学习网 - HTML5先行者学习网
工作,通常会产生安全错误(security error)。可以将文件上传至 LnJHTML5中文学习网 - HTML5先行者学习网
Web服务器,然后请求访问解决此问题。并且,涉及到的图像,JS和 LnJHTML5中文学习网 - HTML5先行者学习网
HTML必须是来自同一个域名。不过,IE9可以通过本地文件访问。LnJHTML5中文学习网 - HTML5先行者学习网
一个例子如下:LnJHTML5中文学习网 - HTML5先行者学习网
LnJHTML5中文学习网 - HTML5先行者学习网
//获取一个像素区域LnJHTML5中文学习网 - HTML5先行者学习网
var imageData = context.getImageData(0, 0, 3, 3); // 3x3 LnJHTML5中文学习网 - HTML5先行者学习网
grid</p><p>var width = imageData.width; LnJHTML5中文学习网 - HTML5先行者学习网
//特定像素在像素区域的位置LnJHTML5中文学习网 - HTML5先行者学习网
var x = 2; LnJHTML5中文学习网 - HTML5先行者学习网
var y = 2; LnJHTML5中文学习网 - HTML5先行者学习网
//绿颜色在像素数组中对应元素的索引LnJHTML5中文学习网 - HTML5先行者学习网
var pixelRedindex = ((y-1)*(width*4))+((x-1)*4); LnJHTML5中文学习网 - HTML5先行者学习网
var pixelGreenindex = pixelRedindex + 1; LnJHTML5中文学习网 - HTML5先行者学习网
var pixelBlueindex = pixelRedindex + 2; LnJHTML5中文学习网 - HTML5先行者学习网
var pixelAlphaindex = pixelRedindex + 3; </p><p>var pixel = imageData.data; // CanvasPixelArray </p><p>var red = pixel[pixelRedindex]; LnJHTML5中文学习网 - HTML5先行者学习网
var green = pixel[pixelGreenindex]; LnJHTML5中文学习网 - HTML5先行者学习网
var blue = pixel[pixelBlueindex]; LnJHTML5中文学习网 - HTML5先行者学习网
var alpha = pixel[pixelAlphaindex];LnJHTML5中文学习网 - HTML5先行者学习网
LnJHTML5中文学习网 - HTML5先行者学习网☆ context.createImageData(w, h)LnJHTML5中文学习网 - HTML5先行者学习网
产生一个大小为(w, h)的ImageData对象,ImageData对象的意义 LnJHTML5中文学习网 - HTML5先行者学习网
同getImageData()所获取的ImageData对象。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.putImageData(ImageData, x, y, x1, y1, w, h)LnJHTML5中文学习网 - HTML5先行者学习网
将一个ImageData对象绘制到canvas上(x, y)处。后四个参数是可 LnJHTML5中文学习网 - HTML5先行者学习网
选参数,用于设定一个裁剪矩形的位置和大小。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.createLinearGradient(x1, y1, x2, y2)LnJHTML5中文学习网 - HTML5先行者学习网
在(x1, y1)和(x2, y2)之间产生线性渐变。如:LnJHTML5中文学习网 - HTML5先行者学习网
LnJHTML5中文学习网 - HTML5先行者学习网
var gradientName = context.createLinearGradient(-5, -50, LnJHTML5中文学习网 - HTML5先行者学习网
5, -50);LnJHTML5中文学习网 - HTML5先行者学习网
LnJHTML5中文学习网 - HTML5先行者学习网☆ Gradient.addColorStop(offset, color)LnJHTML5中文学习网 - HTML5先行者学习网
用于渐变中,在不同的位置设置渐变颜色。 The color argument LnJHTML5中文学习网 - HTML5先行者学习网
is the color you want to be applied in the stroke or fill at LnJHTML5中文学习网 - HTML5先行者学习网
the offset position. The offset position is a value between LnJHTML5中文学习网 - HTML5先行者学习网
0.0 and 1.0, representing how far along the gradient line LnJHTML5中文学习网 - HTML5先行者学习网
the color should be reached. 如:LnJHTML5中文学习网 - HTML5先行者学习网
gradientName.addColorStop(1, '#552200'); LnJHTML5中文学习网 - HTML5先行者学习网
其中color可用CSS中的rgba(r,g,b,a)函数来产生透明渐变,如:LnJHTML5中文学习网 - HTML5先行者学习网
LnJHTML5中文学习网 - HTML5先行者学习网
//产生50%的颜色透明渐变LnJHTML5中文学习网 - HTML5先行者学习网
gradientName.addColorStop(0.2, 'rgba(0, 0, 0, 0.5)');LnJHTML5中文学习网 - HTML5先行者学习网
LnJHTML5中文学习网 - HTML5先行者学习网☆ context.createRadialGradient(x0, y0, r0, x1, y1, r1)LnJHTML5中文学习网 - HTML5先行者学习网
在两个圆之间产生放射渐变区域。The first three arguments LnJHTML5中文学习网 - HTML5先行者学习网
represent a circle centered at (x0, y0) with radius r0, and LnJHTML5中文学习网 - HTML5先行者学习网
the last three arguments represent a second circle centered LnJHTML5中文学习网 - HTML5先行者学习网
at (x1, y1) with radius r1. The gradient is drawn across the LnJHTML5中文学习网 - HTML5先行者学习网
area between the two circles.LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.createPattern(img, 'repeatPattern')LnJHTML5中文学习网 - HTML5先行者学习网
用一个图像img产生重复类型为repeatPattern的某路径的 LnJHTML5中文学习网 - HTML5先行者学习网
strokeStyle样式或填充的fillStyle样式。repeatPattern的值可以 LnJHTML5中文学习网 - HTML5先行者学习网
取repeat、repeat-x、repeat-y和no-repeat之一。如:LnJHTML5中文学习网 - HTML5先行者学习网
LnJHTML5中文学习网 - HTML5先行者学习网
context.strokeStyle = context.createPattern(gravel, LnJHTML5中文学习网 - HTML5先行者学习网
'repeat');LnJHTML5中文学习网 - HTML5先行者学习网
LnJHTML5中文学习网 - HTML5先行者学习网参数 img 也可以是另一个 canvas 或 videoLnJHTML5中文学习网 - HTML5先行者学习网
☆ context.scale(xMultiple, yMultiple)LnJHTML5中文学习网 - HTML5先行者学习网
两个参数分别指定对象在x和y方向上以后的绘制缩放倍数,大于1 LnJHTML5中文学习网 - HTML5先行者学习网
为放大,0和1之间为缩小。若为负值,则可以实现倒影、翻转等效果 LnJHTML5中文学习网 - HTML5先行者学习网
。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.rotate(angle)LnJHTML5中文学习网 - HTML5先行者学习网
用于旋转绘图环境context,以当前坐标原点为按转中心,以弧度 LnJHTML5中文学习网 - HTML5先行者学习网
为单位,结合使用Math.PI。参数 angle 为正值时为顺时针旋转,为 LnJHTML5中文学习网 - HTML5先行者学习网
负值时按逆时针旋转。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.transform(ScaleX, skewY, skewX, ScaleY, transX, LnJHTML5中文学习网 - HTML5先行者学习网
transY)LnJHTML5中文学习网 - HTML5先行者学习网
该函数用于控制绘图对象的大小和切变和位置,是一种变换矩阵 LnJHTML5中文学习网 - HTML5先行者学习网
。ScaleX 和 ScaleY 分别 x 和 y 坐标的缩放。skewY是控制 LnJHTML5中文学习网 - HTML5先行者学习网
context的垂直切变,其值可以为任意大小的正负浮点或整型,相当 LnJHTML5中文学习网 - HTML5先行者学习网
于对纵坐标进行y'= y + skewY * x。skewX是控制context的水平切 LnJHTML5中文学习网 - HTML5先行者学习网
变,其值可以为任意大小的正负浮点或整型,相当于对横坐标进行 LnJHTML5中文学习网 - HTML5先行者学习网
x'= x + skewX * y。最后两个参数的作用相当于translate(x, y)中 LnJHTML5中文学习网 - HTML5先行者学习网
两个参数的作用。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.setTransform(ScaleX, skewY, skewX, ScaleY, LnJHTML5中文学习网 - HTML5先行者学习网
transX, transY)LnJHTML5中文学习网 - HTML5先行者学习网
该方法类似于transform,但是transform方法会与之前已经应用 LnJHTML5中文学习网 - HTML5先行者学习网
过的transform、scale、rotate方法效果复合,产生复杂的复合变换 LnJHTML5中文学习网 - HTML5先行者学习网
效果。setTransform方法则会从context原始的状态应用变换,不会 LnJHTML5中文学习网 - HTML5先行者学习网
与之前的变换复合。因此常用context.setTransform(1, 0, 0, 1, LnJHTML5中文学习网 - HTML5先行者学习网
0, 0)将context的变换状态恢复到其原始值。LnJHTML5中文学习网 - HTML5先行者学习网
☆ fillText (text, x, y, maxwidth)LnJHTML5中文学习网 - HTML5先行者学习网
在(x, y)坐标处绘制填充内容为text的文本。maxwidth是可选参 LnJHTML5中文学习网 - HTML5先行者学习网
数,用于限制所有文本的宽度和文本间距总和的大小,若所有和间距 LnJHTML5中文学习网 - HTML5先行者学习网
的宽度超出这个值,则单个文本字符与字符间距的宽度都会被压缩, LnJHTML5中文学习网 - HTML5先行者学习网
单个字符变得细长,间距变小。可以结合context.font、 LnJHTML5中文学习网 - HTML5先行者学习网
context.fillStyle、context.textAlign等属性绘制填充文本。LnJHTML5中文学习网 - HTML5先行者学习网
☆ strokeText (text, x, y, maxwidth)LnJHTML5中文学习网 - HTML5先行者学习网
在(x, y)坐标处绘制路径内容为text的文本。maxwidt是可选参 LnJHTML5中文学习网 - HTML5先行者学习网
数,用于限制所有文本的宽度和文本间距总和的大小,若所有和间距 LnJHTML5中文学习网 - HTML5先行者学习网
的宽度超出这个值,则单个文本字符与字符间距的宽度都会被压缩, LnJHTML5中文学习网 - HTML5先行者学习网
单个字符变得细长,间距变小。可以结合context.font、 LnJHTML5中文学习网 - HTML5先行者学习网
context.textAlign、context.lineWidth、context.strokeStyle等 LnJHTML5中文学习网 - HTML5先行者学习网
属性绘制路径文本。LnJHTML5中文学习网 - HTML5先行者学习网
例如:LnJHTML5中文学习网 - HTML5先行者学习网
LnJHTML5中文学习网 - HTML5先行者学习网
var fontSize = 100;LnJHTML5中文学习网 - HTML5先行者学习网
context.font = fontSize + "px Arial";LnJHTML5中文学习网 - HTML5先行者学习网
while(context.measureText("Hello world!").width > 140)LnJHTML5中文学习网 - HTML5先行者学习网
{LnJHTML5中文学习网 - HTML5先行者学习网
fontSize--;LnJHTML5中文学习网 - HTML5先行者学习网
context.font = fontSize + "px Arial";LnJHTML5中文学习网 - HTML5先行者学习网
}LnJHTML5中文学习网 - HTML5先行者学习网
context.fillText("Hello world!", 10, 10);LnJHTML5中文学习网 - HTML5先行者学习网
context.fillText("Font size is " + fontSize + "px", 10, 50);LnJHTML5中文学习网 - HTML5先行者学习网
LnJHTML5中文学习网 - HTML5先行者学习网☆ context.measureText("text")LnJHTML5中文学习网 - HTML5先行者学习网
该方法根据当前font, textAlign, 和 textBaseline 的值计算LnJHTML5中文学习网 - HTML5先行者学习网
文本所占区域的大小。text 参数是用于绘制的文本内容。该方法LnJHTML5中文学习网 - HTML5先行者学习网
返回一个 TextMetrics 对象,目前,TextMetrics 对象仅有一个LnJHTML5中文学习网 - HTML5先行者学习网
width 属性,将来可能提供更多属性。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.rect(x, y, w, h)LnJHTML5中文学习网 - HTML5先行者学习网
在点(x, y)处绘制宽w,高h的矩形。当前点被忽略。但矩形绘制 LnJHTML5中文学习网 - HTML5先行者学习网
完后(x, y)成为新的当前点。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.arc(x, y, radius, startAngle, endAngle, LnJHTML5中文学习网 - HTML5先行者学习网
anticlockwise)LnJHTML5中文学习网 - HTML5先行者学习网
绘制圆弧。x, y是圆弧所在圆心坐标;radius是圆弧半径; LnJHTML5中文学习网 - HTML5先行者学习网
startAngle,endAngle分别是起始弧度和终止弧度,以弧度为单位, LnJHTML5中文学习网 - HTML5先行者学习网
圆周率π用Math.PI表示,值为0的弧度是水平向右的;anticlockwise LnJHTML5中文学习网 - HTML5先行者学习网
表示绘制弧度的方向,是可选参数,布尔值,true为逆时针,false LnJHTML5中文学习网 - HTML5先行者学习网
为顺时针,默认为false。使用该方法可以省略lineTo方法。在使用 LnJHTML5中文学习网 - HTML5先行者学习网
该方法绘制一段圆弧后,接下来的路径绘制会从圆弧的结束端点开始 LnJHTML5中文学习网 - HTML5先行者学习网
。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.arcTo(x1, y1, x2, y2, radius)LnJHTML5中文学习网 - HTML5先行者学习网
当前点与(x1, y1)形成一条线L1,(x1, y1)与(x2, y2)形成另一 LnJHTML5中文学习网 - HTML5先行者学习网
条线L2,当前点与(x2, y2)形成第三条线L3。若以(x1, y1)为原点, LnJHTML5中文学习网 - HTML5先行者学习网
L1和L2为坐标轴,与L1和L2相切的,半径为radius,且与“线段”L3在 LnJHTML5中文学习网 - HTML5先行者学习网
同一象限的圆O1上,设与L1的切点为p1,与L2的切点为p2。圆O1上p1 LnJHTML5中文学习网 - HTML5先行者学习网
与p2间有两段弧线,里原点(x1, y1)较近的一段弧(也是圆上较短的 LnJHTML5中文学习网 - HTML5先行者学习网
一段弧)为所绘制的弧线。LnJHTML5中文学习网 - HTML5先行者学习网
另外,当前点与(x1, y1)之间也会绘制出一条线段与弧线相连接 LnJHTML5中文学习网 - HTML5先行者学习网
,因为路径绘制是连续的,当前点与(x1, y1)之间的线段先绘制,紧 LnJHTML5中文学习网 - HTML5先行者学习网
接着绘制弧线。切点p2成为下一个当前点。LnJHTML5中文学习网 - HTML5先行者学习网
该方法常用于绘制圆角矩形。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.quadraticCurveTo(x1, y1, x2, y2)LnJHTML5中文学习网 - HTML5先行者学习网
在当前坐标与(x2, y2)绘制一条二次贝塞尔曲线段,弯曲度由 LnJHTML5中文学习网 - HTML5先行者学习网
(x1, y1)控制。(x1, y1)不在曲线段上。LnJHTML5中文学习网 - HTML5先行者学习网
Other options for curves in the HTML5 Canvas API include LnJHTML5中文学习网 - HTML5先行者学习网
the bezierCurveTo, arcTo, and arc functions. These curves LnJHTML5中文学习网 - HTML5先行者学习网
take additional control points,a radius, or angles to LnJHTML5中文学习网 - HTML5先行者学习网
determine the characteristics of the curve.LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)LnJHTML5中文学习网 - HTML5先行者学习网
在当前点与(x, y)间绘制由控制点(cp1x, cp1y)和(cp2x, cp2y) LnJHTML5中文学习网 - HTML5先行者学习网
控制弯曲度的三次贝塞尔曲线。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.clip()LnJHTML5中文学习网 - HTML5先行者学习网
这个方法将根据上一次所绘制的闭合路径创建一个剪辑区域LnJHTML5中文学习网 - HTML5先行者学习网
(clip region)。剪辑区域相当于一个蒙版,以后绘制的内容仅LnJHTML5中文学习网 - HTML5先行者学习网
落在剪辑区域内的部分才会被显示。LnJHTML5中文学习网 - HTML5先行者学习网
☆ context.isPointInPath(x, y)LnJHTML5中文学习网 - HTML5先行者学习网
检测坐标(x, y)是否在已绘制的路径内。返回值为 true 或LnJHTML5中文学习网 - HTML5先行者学习网
false。LnJHTML5中文学习网 - HTML5先行者学习网
☆ canvas.toDataURL(type, args)LnJHTML5中文学习网 - HTML5先行者学习网
该方法能够将canvas转换为图像,图像是基于Base64编码的。如 LnJHTML5中文学习网 - HTML5先行者学习网
果不指定两个参数,无参数调用该方法,转换的图像格式为png格式 LnJHTML5中文学习网 - HTML5先行者学习网
。LnJHTML5中文学习网 - HTML5先行者学习网
•type:指定要转换的图像格式,如 image/png、image/jpeg等。LnJHTML5中文学习网 - HTML5先行者学习网
•args:可选参数。例如,如果type为image/jpeg,则args可以是 LnJHTML5中文学习网 - HTML5先行者学习网
0.0和0.1之间的值,以指定图像的品质。LnJHTML5中文学习网 - HTML5先行者学习网
例如,下面的代码将canvas中已绘制的内容在一个新的浏览器窗 LnJHTML5中文学习网 - HTML5先行者学习网
口或选项卡中打开:LnJHTML5中文学习网 - HTML5先行者学习网
LnJHTML5中文学习网 - HTML5先行者学习网
var canvas = document.getElementById("myCanvas");LnJHTML5中文学习网 - HTML5先行者学习网
window.open(canvas.toDataURL("image/png"));LnJHTML5中文学习网 - HTML5先行者学习网
LnJHTML5中文学习网 - HTML5先行者学习网