我目前正在学习如何使用画布(canvas),但是我不理解这两个函数的区别。根据我所了解到的,translate方法会“移动画布”,有人可以解释一下吗?
编辑:moveTo只能在路径(path)的上下文中使用吗?
编辑:moveTo只能在路径(path)的上下文中使用吗?
想象一下你正在方格纸上画图。
moveTo
的意思是你拿起笔在纸上移动,以此来画出一条线。
translate
的意思是你将纸张在桌子上的位置进行了调整。
它们是完全不同的功能。
为了比Kolink更具体,我认为他的解释有点含糊不清;
-你通过moveTo
传递的坐标是新行(或形状)的起点; 就像把笔从纸上拿起来并放在新位置(新坐标)上。
-lineTo
的功能是“将笔移动到纸上绘制一条线”(显然需要两个点来绘制一条线,所以它会移动到你给它的一个新坐标)。
-你可以连续放置多个lineTo
调用,并且它将使用你结束的最后一个点来继续线条,例如:
ctx.moveTo(100,50);
ctx.lineTo(25,175);
ctx.lineTo(175,175);
ctx.lineTo(100,50);
ctx.stroke();
ctx.fill()
来“填充”这些形状!)translate
的目的是将画布的(0,0)坐标(左上角)移动到新的坐标。