> show canvas only <


/* built with Studio Sketchpad: 
 *   https://sketchpad.cc
 * 
 * observe the evolution of this sketch: 
 *   https://studio.sketchpad.cc/sp/pad/view/ro.A2Qn8JC01WS/rev.261
 * 
 * authors: 
 *   Sinan

 * license (unless otherwise specified): 
 *   creative commons attribution-share alike 3.0 license.
 *   https://creativecommons.org/licenses/by-sa/3.0/ 
 */ 



// This sketch builds on a prior work, "Modified clone of 'Untitled Sketch'", created by Sinan
// http://studio.sketchpad.cc/sp/pad/view/ro.9tynSmWIwYhVB/rev.11



// This sketch builds on a prior work, "Untitled Sketch", created by Sinan
// http://studio.sketchpad.cc/sp/pad/view/ro.9PBpG4XI9RN8z/rev.2



Blob[] blobs = new Blob[56];

void setup()
{
  size(800, 600);
  stroke(0);
  smooth();
  //noStroke();
  strokeWeight(3);
  frameRate(320);
 
  blobs[0] = new Blob(10, 10,6,22);
  blobs[1] = new Blob(20, 20,12,35);
  blobs[2] = new Blob(30, 35,2,33);
  blobs[3] = new Blob(120, 30,25,30);
  blobs[4] = new Blob(66, 10,6,24);
  blobs[5] = new Blob(10, 10,6,22);
  blobs[6] = new Blob(20, 20,12,35);
  blobs[7] = new Blob(30, 35,2,33);
  blobs[8] = new Blob(120, 30,25,30);
  blobs[9] = new Blob(66, 10,6,24);
  blobs[10] = new Blob(10, 10,6,22);
  blobs[11] = new Blob(20, 20,12,35);
  blobs[12] = new Blob(30, 35,2,33);
  blobs[13] = new Blob(120, 30,25,30);
  blobs[14] = new Blob(66, 10,6,24);
  blobs[15] = new Blob(19,23,29,35);
  blobs[16] = new Blob(25,29,35,40);
  blobs[17] = new Blob(30,33,38,44);
  blobs[18] = new Blob(33,37,41,49);
  blobs[19] = new Blob(38,42,46,52);
  blobs[20] = new Blob(42,46,50,56);
  blobs[21] = new Blob(48,51,55,61);
  blobs[22] = new Blob(52,55,59,66);
  blobs[23] = new Blob(58,60,62,70);
  blobs[24] = new Blob(8,12,19,21);
  blobs[25] = new Blob(14,19,25,28);
  blobs[26] = new Blob(20,25,30,35);
  blobs[27] = new Blob(23,30,35,38);
  blobs[28] = new Blob(29,35,40,43);
  blobs[29] = new Blob(32,40,45,49);
  blobs[30] = new Blob(39,45,20,17);
  blobs[31] = new Blob(52,60,30,35);
  blobs[32] = new Blob(42,28,19,45);
  blobs[33] = new Blob(35,41,32,19);
  blobs[34] = new Blob(51,38,26,42);
  blobs[35] = new Blob(35,62,15,58);
  blobs[36] = new Blob(25,29,35,40);
  blobs[37] = new Blob(30,33,38,44);
  blobs[38] = new Blob(33,37,41,49);
  blobs[39] = new Blob(38,42,46,52);
  blobs[40] = new Blob(42,46,50,56);
  blobs[41] = new Blob(48,51,55,61);
  blobs[42] = new Blob(52,55,59,66);
  blobs[43] = new Blob(58,60,62,70);
  blobs[44] = new Blob(8,12,19,21);
  blobs[45] = new Blob(14,19,25,28);
  blobs[46] = new Blob(20,25,30,35);
  blobs[47] = new Blob(23,30,35,38);
  blobs[48] = new Blob(29,35,40,43);
  blobs[49] = new Blob(32,40,45,49);
  blobs[50] = new Blob(39,45,20,17);
  blobs[51] = new Blob(52,60,30,35);
  blobs[52] = new Blob(42,28,19,45);
  blobs[53] = new Blob(35,41,32,19);
  blobs[54] = new Blob(51,38,26,42);
  blobs[55] = new Blob(35,62,15,58);
  
  
}


void draw()
 {
   fill(113, 25, 10,250);
  // background(#C95F45);
  rect(0, 0, width, height);
  for (int i = 0; i < blobs.length; i++)
  {
    blobs[i].ciz();
  }
   
 }
 
 class Blob
 {
  float ci_x = random(30);
  float ci_y = random(30);
  /*float ci_x;
  float ci_y;*/
 
  float move_x = random(50);
  float move_y = random(50);
 
  float currentx;
  float currenty;
  float num = random(50);
 
  int Segments;
  int buyuk;
  
  Blob(int seg, int b,float cx,float cy)
  {
    currentx = width / 2;
    currenty = height / 2;
    ci_x = cx;
    ci_y = cy;
   
    Segments = seg;
    buyuk = b;
  }
  
   void ciz() {
    translate(width * noise(num+30), height * noise(num+50));
 
    rotate(80 * noise(num+10));
    num = num + 0.00009;
 
    float x[] = new float[Segments];
    float y[] = new float[Segments];
 
    for (int i=0; i<Segments; i++) {
      
     // float reb = noise(50);
      float angle = float(i) / float(Segments) * TWO_PI;
      float distance = buyuk + 8 * noise(i, frameCount/10.0); 
 
      x[i] = ci_x + sin(angle) * distance+80;
      y[i] = ci_y + cos(angle) * distance+80;
    }
 
    if (ci_x > width) {
      ci_x = width;
      move_x = -move_x;
    }
 
    if (ci_y > height) {
      ci_y = height;
      move_y = -move_y;
    }
 
    if (ci_x < 0) {
      ci_x = 0;
      move_x = -move_x;
    }
 
    if (ci_y < 0) {
      ci_y = 0;
      move_y = -move_y;
    }
 
    beginShape();
    fill(255);
 
    for (int i=0; i<Segments+4; i++) {
      curveVertex(x[i % Segments], y[i % Segments]);
      
    }
 
    endShape();
    resetMatrix();
  }
}