Daily Creative Coding

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

ペンキをとばす

マウスをクリックする。

/**
* Paint Splash
*
* @author aa_debdeb
* @date 2016/01/19
*/


void setup(){
  size(500, 500);
  background(255);
  frameRate(30);
  colorMode(HSB, 360, 100, 100);
}

void draw(){

}

void mousePressed(){
    pushMatrix();
      translate(mouseX, mouseY);
      float hue = random(360);
      fill(hue, 100, 100);
      noStroke();
      int dropNum = int(map(random(1), 0, 1, 700, 1000));
      for(int i = 0; i < dropNum; i++){
        float diameter = pow(random(1), 20);
        float distance = sq((1.0 - pow(diameter, 2)) * random(1));
        float scaledDiameter = map(diameter, 0, 1, 1, 30);
        float scaledDistance = map(distance, 0, 1, 0, 300);
        float radian = random(TWO_PI);
        ellipse(scaledDistance * cos(radian), scaledDistance * sin(radian), scaledDiameter, scaledDiameter);
      }
    popMatrix();
}