【Processing】blendMode(ADD)と少しだけrotate()を繰り返して(2)

 

 

float a = random(100000);
float b = random(2,4);
float c = random(200);
float d = random(100,360);

void setup(){
  print(b,c,d);//パラメータを出力
  size(800,800);
  smooth();
  colorMode(HSB,360,100,100,100);
  blendMode(ADD);
}


void draw(){
  background(0);
  noStroke();
  
  for(int i = 50; i < width ; i+=2){
  
    pushMatrix();
      translate(i,height/b);
      int r = 200;
      float x = 10;
      float y = 0 - 100;  
      
      float x1 = x + r*cos(radians(a));
      float y1 = y + r/2*sin(radians(a/2));

      float x2 = x + r*cos(radians(a+90));
      float y2 = y + r/2*sin(radians(a/3+90));

      float x3 = x + r*cos(radians(a+180));
      float y3 = y + r/2*sin(radians(a/4+180));

      float x4 = x + r*cos(radians(a+270));
      float y4 = y + r/2*sin(radians(a/9+270));    
      
      int r2 = 300;
      float x_ = 0;
      float y_ = 0 + 500; 
      
      float x_1 =  x_ + r2*cos(radians(a));
      float y_1 = y_ + r2/2*sin(radians(a));

      float x_2 =  x_ + r2*cos(radians(a+90));
      float y_2 = y_ + r2/2*sin(radians(a/6+90));

      float x_3 =  x_ + r2*cos(radians(a+180));
      float y_3 = y_ + r2/2*sin(radians(a/7+180));

      float x_4 =  x_ + r2*cos(radians(a+270));
      float y_4 = y_ + r2/2*sin(radians(a/8+270));
      
      fill(map(i,50,width,c,d),100,100,2);
      
      quad(x_4,y_4,x_1,y_1,x1,y1,x4,y4);
      quad(x_2,y_2,x_3,y_3,x3,y3,x2,y2);       
      quad(x_1,y_1,x1,y1,x2,y2,x_2,y_2);
      quad(x_3,y_3,x3,y3,x4,y4,x_4,y_4);      
      
      popMatrix();   
  }
  a++;
}