Processing 在处理过程中,可以在draw()之外调用代码,而不是在setup()中调用代码

Processing 在处理过程中,可以在draw()之外调用代码,而不是在setup()中调用代码,processing,Processing,根据Processing的translation reference页面,“如果在draw()中调用translate(),则在循环再次开始时会重置转换。”除了setup()之外,还有其他方法调用draw()之外的代码吗 我是处理新手,如果我忽略了一些明显的东西,请原谅。不,不能调用draw()函数之外的东西。如果要将translate()与变量值一起使用,请使用定义转换的变量。如果每次都要转换到同一点,则在每个循环的开头使用常量值调用translate()。是的,有几种方法可以调用transl

根据Processing的translation reference页面,“如果在draw()中调用translate(),则在循环再次开始时会重置转换。”除了setup()之外,还有其他方法调用draw()之外的代码吗


我是处理新手,如果我忽略了一些明显的东西,请原谅。

不,不能调用draw()函数之外的东西。如果要将
translate()
与变量值一起使用,请使用定义转换的变量。如果每次都要转换到同一点,则在每个循环的开头使用常量值调用
translate()

是的,有几种方法可以调用
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(01100)
调用
draw()
translate(100,0)
调用
mousePressed()
添加在一起,因此圆圈显示在
100100
处。首先调用
draw()
函数,然后调用事件函数


参考文件只是告诉您,下一次调用
draw()
时,将重置翻译。

您所说的“外部”是什么意思?您可以在
setup
draw
之外定义任意数量的类和方法。但是一个应用程序需要多少入口点,真的吗?我不是指draw()之外的类(我意识到我对这个问题的措辞含糊不清)。我假设引用页面说draw()函数中调用的任何内容都将在下一个draw()中重置。在draw()函数之外可以调用任何东西吗?哦,我明白了。因此,调用draw()时,mousePressed()和其他事件中的转换也将重置。