可以使用translate()
函数将处理中的x和y距离相对于参考帧进行平移。
是否有一个可以用来转换为世界空间中的绝对坐标的函数?例如,无论您的参考帧先前在哪里转换为,都可以转换为相对于窗口的坐标(20,30)吗?
答案 0 :(得分:0)
在代码中首次使用translate时,实际上是在翻译整个坐标系。如果你想独立地(不影响)跟随转换在一个位置/转换处绘制一个对象,你应该在pushMatrix() / popMatrix()调用中隔离它。
这是一个基本的例子:
pushMatrix();
translate(50,50);
rect(0,0,50,50);
popMatrix();
translate(20,20);
rect(0,0,20,20);
大方块(50x50)首先在位置50,50处绘制,但翻译在pushMatrix()/popMatrix()
次调用之间被隔离,因此当我们调用translate(20,20)
时,将从0,0执行翻译,不是从50,50,这意味着我们得到一个小盒子,画在20,20,而不是70,70。