处理:尝试在没有绘制功能的情况下为线条绘制设置动画
Processing: Trying to animate the drawing of lines without draw function
我正在尝试编写一个少于 140 个字符的程序(Twitter 字符限制)。该程序显示了我想要的最终输出,但我不明白为什么它在创建动画时不显示它。我认为这是因为我没有绘制函数,但我不明白如果绘图全部在 For 循环中完成,为什么这很重要,无论如何绘制函数没有帮助。我试过降低帧率,但出于某种原因,它只给我一个静态的最终输出。非常感谢任何帮助。
int j=600, i=j/3;
size(j, j);
smooth();
translate(j/2, j/2);
for (i=1; i<12500; ) {
fill(i%j, i%j);
rotate(j%i*5);
line(i++%j, i++%j, i+++j, int(i/99)%99);
}
处理使用双缓冲,这意味着当您绘制 "to the screen" 时,您实际上是在绘制到屏幕外缓冲区。由于您的代码不在 draw() 函数中,因此这发生在框架甚至可见之前。然后当框架变得可见时,它会占用整个屏幕外缓冲区,并将整个内容绘制到屏幕上。
这就是为什么您只看到绘图的最终结果。如果要显示动画,则必须使用 draw() 函数和某种计时(例如 millis() 方法)。
我正在尝试编写一个少于 140 个字符的程序(Twitter 字符限制)。该程序显示了我想要的最终输出,但我不明白为什么它在创建动画时不显示它。我认为这是因为我没有绘制函数,但我不明白如果绘图全部在 For 循环中完成,为什么这很重要,无论如何绘制函数没有帮助。我试过降低帧率,但出于某种原因,它只给我一个静态的最终输出。非常感谢任何帮助。
int j=600, i=j/3;
size(j, j);
smooth();
translate(j/2, j/2);
for (i=1; i<12500; ) {
fill(i%j, i%j);
rotate(j%i*5);
line(i++%j, i++%j, i+++j, int(i/99)%99);
}
处理使用双缓冲,这意味着当您绘制 "to the screen" 时,您实际上是在绘制到屏幕外缓冲区。由于您的代码不在 draw() 函数中,因此这发生在框架甚至可见之前。然后当框架变得可见时,它会占用整个屏幕外缓冲区,并将整个内容绘制到屏幕上。
这就是为什么您只看到绘图的最终结果。如果要显示动画,则必须使用 draw() 函数和某种计时(例如 millis() 方法)。