【问题标题】:How can one create a 'pulse' effect in Processing?如何在处理中创建“脉冲”效果?
【发布时间】:2016-06-07 23:47:41
【问题描述】:

我正在尝试将我绘制到屏幕上的图表上出现的点一一可视化。

理想情况下,首先绘制一个小椭圆,然后从那里,一个“环”将从椭圆的中心向外移动,并在移动时逐渐消失。初始椭圆将保留在最初绘制的位置。

我可以编写一个简单的渐变椭圆,但无法弄清楚如何为移动环设置动画。 任何人都可以分享一些关于如何开始的想法吗?

【问题讨论】:

    标签: animation processing


    【解决方案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);
    }
    

    请注意,这只是一个示例,您必须将这些步骤与您自己的状态和您自己的变量一起应用,以达到您想要的效果。 p>

    Stack Overflow 确实不是为一般的“我该怎么做”类型的问题而设计的。尝试提出更具体的“我尝试了 X,预期 Y,但得到了 Z”类型的问题。换句话说,尝试一下,如果遇到困难,请发布MCVE。祝你好运。

    【讨论】:

      猜你喜欢
      • 2011-06-22
      • 2012-11-15
      • 1970-01-01
      • 2017-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-20
      • 2021-11-18
      相关资源
      最近更新 更多