2016-06-07 30 views
0

我正在试图将我绘制到屏幕上的图形上逐一显示的点可视化。理想情况下,首先绘制一个小椭圆,然后从那里,一个“环”从椭圆的中心向外移动,并在移动时消失。最初的椭圆将保留在最初绘制的地方。如何在处理中创建“脉冲”效果?

我可以编码一个简单的衰落椭圆,但我无法弄清楚如何动画移动环。 任何人都可以请分享一些关于如何开始使用它的想法?

回答

1

基本上,您需要将动画的状态存储在一组变量中。使用这些变量绘制每一帧,并随时间改变这些变量以改变绘制的内容。

所以第一步是找出你需要存储什么状态。这将告诉你需要跟踪哪些变量。作为一个非常简单的例子,你可以存储一定直径的不透明度:

float diameter = 10; 
float opacity = 255; 

第二步就是用这些变量来绘制每一帧。一次只担心一个框架,在这种情况下,我们可能只是清除旧的框架,然后画一个圆:

background(0); 
noFill(); 
stroke(255, 255, 255, opacity); 
ellipse(width/2, height/2, diameter, diameter); 

最后,最后一步是随时间而变化的变量。我们可以做到这一点通过修改它们的值,使圈变得越来越大,颜色就变得不那么不透明:

diameter++; 
opacity--; 

全部放在一起,它看起来像这样:

float diameter = 10; 
float opacity = 255; 

void setup(){ 
    size(500, 500); 
} 

void draw(){ 
diameter++; 
opacity--; 

background(0); 
noFill(); 
stroke(255, 255, 255, opacity); 
ellipse(width/2, height/2, diameter, diameter); 
} 

请注意,这仅仅是一个例子,你将不得不应用这些步骤与你自己的状态和你自己的变量来达到你要去的效果。

堆栈溢出真的不是为一般的“我该怎么做”类型的问题而设计的。试着问一些更具体的“我试过X,期望Y,但是改为Z”类型的问题。换句话说,尝试一下,如果你遇到困难,请发帖MCVE。祝你好运。