处理:如何使事物以随机曲线而不是线条移动?

时间:2012-10-27 13:51:15

标签: html5 canvas processing

我有经典的球在一条线上移动:

class Circle{
  float x,y,vx,vy,size;        

 Circle(float ax,float ay){
   x = ax;
   y = ay;
   size = 5;
   vx = random(-.1,.1);
   vy = random(-.1,.1);
}

void update(int w,int h){
   x += vx;
   y += vy;
   if(x < 0 || x > w) vx *= -1;
   if(y < 0 || y > h) vy *= -1;
 }

void draw(){
  pushStyle();
  noStroke();
  fill(0);
  ellipse(x,y,size,size);
  popStyle();
}

}

但是,我不希望他们排成一行。

我希望他们以不规则的曲线移动。我能添加什么?噪声?罪? COS?

非常感谢。

2 个答案:

答案 0 :(得分:0)

您可能希望查看this page。使用工作样本简化方程式的简单指南。请注意,相同的技术可用于时间或空间中的曲线。

编辑:忘了说这个网站是针对flash的,但无论如何都很简单,即使你像我一样没有闪存知识。代码示例很容易适应。

答案 1 :(得分:0)

取决于你想要什么,但如果你想让它们按正弦曲线移动,例如,你可以这样做:

class Circle{
    float x,y,vx,vy,size;
    float sinCtr = 0;

    // ...

    void update(int w,int h){
        x += vx;
        y = h/2 + 50 * Math.sin(sinCtr);
        sinCtr += 0.02;
    }