0

我们都知道如何在 Processing 中画线。

但是当我们画一条线时,这条线会立即显示出来。

如果我想亲眼目睹绘制过程,即看到线条向前移动,逐渐完成一整条线。

这就是我想要实现的:画几条线和曲线,最终变成某种图案。

那么如何实现呢?使用数组?

非常感谢。

4

2 回答 2

0

在处理过程中,所有的绘图都发生在一个循环中。像您描述的那样创建动画序列的一种简单方法是使用 frameCount 来驱动它,并且使用模数函数 % 是创建循环的好方法。例如,沿 x 轴设置动画:

void draw() {
   float x = 50;
   float y = 50;
   float lineLength = 50;
   int framesToAnimate = 60;
   line(x,y,x+float(frameCount % framesToAnimate)/framesToAnimate*lineLength, y);
}

注意:如果您不强制转换/转换为浮点数,将会发生奇怪的事情

我经常使用它来为其他功能设置动画,例如颜色。

fill(color(127 + sin(float(frameCount)/90)*127, 0, 0, 127));

如果您想更高级,请使用PVector设置矢量和坐标。Daniel Shiffman 的网站上有一个很好的教程。

于 2012-10-04T18:37:27.290 回答
0

如果要设置独立于帧速率的动画,可以使用 mills() 代替。这将返回自草图开始以来的当前时间,因此您可以设置在给定时间内以秒为单位发生的事情。例如:

long initialTime;

void setup(){
size(400,200);
initialTime = millis();
}
void draw() {
float x = 50;
float y = 50;                              //set the multiplier to adjust speed
line(x,y,x+(millis()-initialTime)*0.01, y);           //10 px/sec
line(x,y+50,x+(millis()-initialTime)*0.05, y+50);     //50 px/sec
line(x,y+100,x+(millis()-initialTime)*0.001, y+100);  // 1 px/sec
 }

还有一些动画库,我已经看到了一些令人印象深刻的结果,但我从未使用过它们。这里有一个清单

于 2012-10-05T18:15:17.730 回答