我们都知道如何在Processing中画一条线。
但是当我们绘制一条线时,该线会立即显示。
如果我想见证绘画过程,即看到前进线,逐渐完成整行,该怎么办。
这就是我想要实现的:绘制几条线和曲线,最终变成某种模式。
那么如何实现呢?使用数组?
非常感谢。
答案 0 :(得分: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's site上有一个非常好的教程。
答案 1 :(得分: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
}
还有一些动画库,我看到一些令人印象深刻的结果,但我从未使用它们。这是list。