在处理过程中,如何将其转换为世界空间中的最终坐标?

时间:2012-03-02 01:21:00

标签: processing

可以使用translate()函数将处理中的x和y距离相对于参考帧进行平移。

是否有一个可以用来转换为世界空间中的绝对坐标的函数?例如,无论您的参考帧先前在哪里转换为,都可以转换为相对于窗口的坐标(20,30)吗?

1 个答案:

答案 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。