我目前正在学习使用canvas,并且不了解这两个函数之间的区别。根据我的阅读,翻译方法'移动画布'?有人可以解释一下吗?
编辑:moveTo是否仅在路径的上下文中使用?
答案 0 :(得分:6)
想象一下,你正在使用方格纸。
moveTo
表示你拿笔并将其移过纸张画一条线。
translate
表示您将纸张的位置移到桌面上。
他们的功能可能不同。
答案 1 :(得分:6)
要比Kolink更具体一点,因为我认为解释有点混乱;
- 您传递的坐标moveTo
是新线(或形状)的起点;好像从纸上拿起笔并将其设置在新位置(新坐标)。
- lineTo
的功能就是“将笔移到纸上画一条线”(到你给它的新坐标,因为你需要两个点画一条线,显然)
- 您可以一个接一个地发出多个lineTo
来电并使用您结束的最后一个点,继续这一行,如下所示:
ctx.moveTo(100,50);
ctx.lineTo(25,175);
ctx.lineTo(175,175);
ctx.lineTo(100,50);
ctx.stroke();
这是一个显示结果的简单小提琴:http://jsfiddle.net/fbZKu/
(您甚至可以使用ctx.fill()
“填充”这些形状!)
- 使用translate
将画布'(0,0)坐标(左上角)移动到新坐标。
我希望能更清楚一点!快乐的编码! :)