根据Processing的翻译参考页面reference page,“如果在draw()中调用translate(),则在循环再次开始时重置转换。”除了setup()之外,有没有办法在draw()之外调用代码?
我是Processing的新手,如果我忽略了一些显而易见的事情,请原谅我。
答案 0 :(得分:2)
是的,有几种方法可以在constant
函数之外调用translate()
和其他处理函数。
您可以使用静态草图,只绘制一个框架而不进行循环:
draw()
这是一个完整的程序,会在窗口中央画一个圆圈。
或者您可以将绘图代码放在事件函数中:
size(200, 200);
translate(width/2, height/2);
ellipse(0, 0, 100, 100);
当用户按下鼠标时,该程序在窗口中央绘制一个圆圈。但请注意,对void setup(){
size(200, 200);
}
void draw(){
translate(0, 100);
}
void mousePressed(){
translate(100, 0);
background(32);
ellipse(0, 0, 100, 100);
}
堆叠的调用:translate()
中的translate(0, 100)
来电和draw()
中的translate(100, 0)
来电被加在一起,因此圈子显示在{ {1}}。首先调用mousePressed()
函数,然后调用事件函数。
该引用只是告诉您下次调用100,100
时将重置翻译。
答案 1 :(得分:0)
不,不能在draw() - 函数之外调用某些东西。如果要将translate()
与变量值一起使用,请使用定义转换的变量。如果您希望每次都转换为相同的点,请在每个循环开始时使用常量值调用translate()
...