Daily Creative Coding

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

Triangle Wave Change VS. Sine Wave Change

/**
* Triangle Wave Change VS. Sine Wave Change
*
* left: color change by triangle wave, right: color change by sine wave
* 
* @author aa_debdeb
* @date 2015/09/07
*/


float T_STEP_SIZE = PI / 128.0;
float t = 0.0;

void setup(){
  size(500, 250);
  noStroke();
  frameRate(30); 
}

void draw(){
  background(255);
  fill(0, 128 + getTriangleWave(t) * 128);
  rect(0, 0, width / 2.0, height);
  fill(0, 128 + sin(t) * 128);
  rect(width / 2.0, 0, width / 2.0, height);
  t += T_STEP_SIZE;
}

float getTriangleWave(float x){
  float y = x % (2.0 * PI);
  float z = y % (PI / 2.0);
  if(0 <= y && y < PI / 2.0){
    return z / (PI / 2.0);
  } else if(PI / 2.0 <= y && y < PI) {
    return ((PI / 2.0) - z) / (PI / 2.0);
  } else if(PI <= y && y < 1.5 * PI){
    return -1.0 * z / (PI / 2.0);  
  } else {
    return -1.0 * ((PI / 2.0) - z) / (PI / 2.0);
  }
}