我正在使用Processing创建一个学习体验项目,该项目允许用户将网络组件结合在一起。我有使用标准线路的链接,但是如果存在有效的连接,我希望能够显示信号在线路中移动。例如,将该线视为网络电缆。无论如何,我可以为该行设置动画吗?
void draw(){
pushStyle();
stroke(0);
line(from.x, from.y, to.x, to.y);
popStyle();
}
} //draw function in the 'link' file
答案 0 :(得分:1)
当然可以,但是您的问题有点宽泛。您确实有特定类型的动画吗?无限的可能性;)
处理此类问题的基本方法是每帧增加一些动画变量(或使用时间管理-尽管这超出了基础)。
因为动画变量(例如位置或颜色)每帧都会更改,所以动画每帧都不同。它是动画的。
下面我举一个绿色的小线穿过黑色“连接”线的示例。如果您通读了代码,我想您会发现的。应该将其合并到一个不错的“连接”类中,以便更大规模地使用。
//set coordinates for connection-line
int fromX = 100;
int toX = 600;
int fromY = 100;
int toY = 200;
//copy start coordinate for animation
int animx = fromX;
int animy = fromY;
//determine animation stepsize
int stepX = (toX-fromX)/10;
int stepY = (toY-fromY)/10;
void setup() {
size(800, 300);
//set framerate so animation is not to fast
frameRate(5);
//draw thick lines
strokeWeight(10);
}
void draw() {
background(255);
// draw connection in black
stroke(0);
line(fromX, fromY, toX, toY);
//draw animation in green
stroke(0, 255, 0);
line(animx, animy, animx+stepX, animy+stepY);
// step animation for next frame
animx = animx+stepX;
animy = animy+stepY;
// check for reset (if the animation on the next frame is drawn outside the line)
if (animx+stepX > toX)
{
animx = fromX;
}
if (animy+stepY > toY)
{
animy = fromY;
}
}