Daily Creative Coding

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

線の太さが変化する円を書き続ける

/**
* Unstable Circle
*
* @author aa_debdeb
* @date 2015/09/14
*/

float ROTATION_RADIOUS = 150;
float CENTER_X;
float CENTER_Y;
float MAX_STROKE_WEIGHT = 75.0;
float TIME_STEP = 0.03;
float ANGLE_STEP = PI / 128;

float time = 0.0;
float angle = 0.0;

void setup(){
  size(500, 500);
  smooth();
  frameRate(60);
  background(255);

  CENTER_X = width / 2.0;
  CENTER_Y = height / 2.0;
  
}

void draw(){
  noStroke();
  fill(255, 10);
  rect(0, 0, width, height);
  
  stroke(0);
  strokeWeight(noise(time) * MAX_STROKE_WEIGHT);
  float nextAngle = angle + ANGLE_STEP;
  line(CENTER_X + ROTATION_RADIOUS * cos(angle), CENTER_Y + ROTATION_RADIOUS * sin(angle), CENTER_X + ROTATION_RADIOUS * cos(nextAngle), CENTER_Y + ROTATION_RADIOUS * sin(nextAngle));
  angle = nextAngle; 
  if(angle < 0){
    angle += 2.0 * PI;
  } else if(angle >= 2.0 * PI){
    angle -= 2.0 * PI;
  }
  time += TIME_STEP;
}