> show canvas only <


/* built with Studio Sketchpad: 
 *   https://sketchpad.cc
 * 
 * observe the evolution of this sketch: 
 *   https://itct.sketchpad.cc/sp/pad/view/ro.s31SLAHVojM/rev.8
 * 
 * authors: 
 *   JongHwan Oh
 *   JongHwan Oh

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



//랜덤 네모방울

void setup() {
  size(400,400);
  background(200,209,232);
  smooth();
  noStroke();
}

//브러쉬의 위치입니다.
int xpos = int( random(0,400) );
int ypos = int( random(0,400) );

//랜덤값의 범위입니다.
int pos_var = 15;
int x_offset = 1;
int y_offset = 1;

//초기컬러입니다. 
int col_red = 6;
int col_green = 63;
int col_blue = 214;
int col_var = 10;
int col_alpha = 70;

//초기 브러쉬 사이즈 및 랜덤값 범위 입니다. 
int rsize = 20;
int r_var = 5;

void draw() {

//캔버스를 벗어나지 않도록 오프셋을 조정합니다.  
  if (ypos < 0 && y_offset < 0 || ypos > 400 && y_offset > 0) y_offset = -y_offset;
  if (xpos < 0 && x_offset < 0 || xpos > 400 && x_offset > 0) x_offset = -x_offset;
  
//브러쉬를 랜덤하게 떨면서 이동합니다. 대략 어느쪽으로 움직일지는 오프셋을 주어 결정합니다.
  xpos = xpos + int( random(-pos_var, pos_var) ) + x_offset;
  ypos = ypos + int( random(-pos_var, pos_var) ) + y_offset;  
  
//색깔도 조금씩 변형시킵니다.
  col_red += int( random(-col_var, col_var) );
  col_green += int( random(-col_var, col_var) );
  col_blue += int( random(-col_var, col_var) );

//사이즈도 마찬가지 입니다.
  rsize += int( random(-r_var, r_var) );

//색의 범위를 너무 벗어나면 처음 색깔로 돌아옵니다.
  if (col_red < 0 || col_red > 127) col_red = 6;
  if (col_green < 20 || col_green > 180) col_green = 63;
  if (col_blue < 100 || col_blue > 255) col_blue = 214;
  
//브러쉬의 크기도 너무 커지지 않도록 합니다.
  if (rsize < 0 || rsize > 30) rsize = 10; 

//붓질을 합니다.  
  fill(col_red, col_green, col_blue, col_alpha);
  rect(xpos, ypos, rsize, rsize);

}