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

时间:2018-03-24 02:04:35

标签: processing

根据Processing的翻译参考页面reference page,“如果在draw()中调用translate(),则在循环再次开始时重置转换。”除了setup()之外,有没有办法在draw()之外调用代码?

我是Processing的新手,如果我忽略了一些显而易见的事情,请原谅我。

2 个答案:

答案 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() ...