canvas 2d Context.translation(...)如何实际工作?

时间:2011-11-13 19:21:10

标签: javascript html5 canvas

我正在尝试使用OnTouchListener2dContext.translate使用2dContext = canvas.getContext('2d')创建应用。
当用户触摸屏幕并且canvas.translate新坐标时,监听器将更改平移值。

现在我解决了一个小问题,2dContext.translate实际上是如何工作的 例如:我使用2dContext.translate(100,100)设置第一个坐标,它不是平移,而是视图中的真实坐标。视图中的第二个坐标为[400,400]。什么是正确的,2dContext.translate(400,400)2dContext.translate(300,300)

我的意思是,我是否必须将新的坐标设置为像pan(100 + 300)这样的最后一个坐标,还是必须设置第二个坐标,如全新的坐标(400)?在这种情况下,坐标是否具有相对或绝对值?

1 个答案:

答案 0 :(得分:2)

每个翻译都与当前的起源相关。如果您致电ctx.translate(x, y),您的来源将在x方向上移动x像素,在y方向移动y像素。正值和负值都被接受。

如果您需要保持不同的原点位置,请使用ctx.save()ctx.restore()来记住并重置以前定义的画布属性。这些函数在堆栈上运行,因此您可以保存多个状态。