Daily Creative Coding

元「30 min. Processing」。毎日、Creative Codingします。

Circle by Worms

processing.jsのnoise関数にはバグがあるようなので,Javaモードで実行すると次の画像のような違う挙動を示す

f:id:aa_debdeb:20151018022933j:plain
/**
* Circle by Worms
*
* @author aa_debdeb
* @date 2015/10/19
*/


ArrayList<Mover> movers;

void setup(){
  size(500, 500);
  smooth();
  frameRate(24);
  background(47, 79, 79);
  movers = new ArrayList<Mover>();
  for(int i = 0; i < 100; i++){
      movers.add(new Mover());
  }
}

void draw(){
  stroke(0, 139, 139);
  strokeWeight(2);
  fill(102, 205, 170);
  translate(width/2, height/2);
  for(Mover mover: movers){
    float radious = 100 + 100 * map(noise(mover.startNoise + frameCount * 0.03), 0.0, 1.0, -1.0, 1.0);
    float radian = mover.startRadian + frameCount * 0.04;
    ellipse(radious * cos(radian), radious * sin(radian), 10, 10);
  }
}

class Mover{
  
  float startNoise;
  float startRadian;
  
  Mover(){
    startNoise = random(100);
    startRadian = random(TWO_PI);
  }
  
}