我正在尝试使用OnTouchListener
和2dContext.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)?在这种情况下,坐标是否具有相对或绝对值?
答案 0 :(得分:2)
每个翻译都与当前的起源相关。如果您致电ctx.translate(x, y)
,您的来源将在x
方向上移动x
像素,在y
方向移动y
像素。正值和负值都被接受。
如果您需要保持不同的原点位置,请使用ctx.save()
和ctx.restore()
来记住并重置以前定义的画布属性。这些函数在堆栈上运行,因此您可以保存多个状态。