Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
void setup() {
  //set up canvas size
  size(400, 400);
  //set up rec and ellipse modes
  rectMode(CORNERS);
  ellipseMode(CENTER);
  //set framerate to provide best movement
  frameRate(144);
  
}

void draw() {
  background(mouseY/9, mouseY/4, mouseY/1);
  noStroke();

  //sun
  fill(255, 243, 13);
  ellipse((190+170*cos(radians(mouseY/1.3))), (200+170*sin(radians(mouseY/1.3))), 80, 80);

  //moon
  fill(196, 223, 247);
  ellipse((190+170*cos(radians(mouseY/1.3)-PI)), (200+170*sin(radians(mouseY/1.3)-PI)), 80, 80);
  fill(mouseY/9, mouseY/4, mouseY/1);
  ellipse((205+170*cos(radians(mouseY/1.3)-PI)), (200+170*sin(radians(mouseY/1.3)-PI)), 60, 60);

  //mountain
  fill(96, 77, 116);
  triangle(200, 60, 0, 175, 400, 175);
  rect(0, 175, 400, 400);
  fill(81, 66, 98);
  triangle(130, 200, 10, 400, 70, 400);
  triangle(250, 120, 390, 400, 450, 400);
  
  
  
  //mountain top


  //tree tops
  fill(47, 128, 99);
  ellipse(50, 350, 120, 200);
  ellipse(120, 380, 100, 100);

  ellipse(350, 350, 120, 200);
  ellipse(280, 380, 100, 100);

  //Lleg
  fill(220, 220, 220);
  rect(175, 270, 190, 330);
  
  //Lfoot
  fill(0, 0, 0);
  rect(170, 330, 195, 340);

  //Rleg
  fill(220, 220, 220);
  quad(185, 270,195, 260,  225, 292, 213,300);
  ellipse(218, 300, 21, 21);
  rect(200, 295, 215, 310);
  
  //Rfoot
  fill(0, 0, 0);
  rect(190, 290, 200, 315);

  //right bicep
  fill(240, 240, 255);
  quad(235+(mouseX-210)/22, 205, 210, 170, 210, 195, 223+(mouseX-210)/22, 210);
  
  //left bicep
  quad(145+(mouseX-210)/22, 205, 160+(mouseX-210)/22, 210, 170, 195, 170, 170);
  

  //body
  fill(255, 255, 255);
  rect(170, 170, 210, 270);
  
  //sash
  fill(0, 0, 0);
  rect(170, 230, 210, 240);
  triangle(170, 170, 210, 230, 200, 230);
  triangle(170, 170, 180, 170, 210, 230);

  //headband
  fill(206, 0, 0);
  rect(160+(mouseX-210)/22, 120, 220+(mouseX-210)/22, 130);
  ellipse(227+(mouseX-210)/22, 125, 20, 20);
  triangle(227+(mouseX-210)/22, 125, 245+(mouseX-210)/22, 135, 235+(mouseX-210)/22, 145);
  triangle(248+(mouseX-210)/22, 156, 245+(mouseX-210)/22, 135, 235+(mouseX-210)/22, 145);

  triangle(227+(mouseX-210)/22, 125, 215+(mouseX-210)/22, 155, 230+(mouseX-210)/22, 150);
  triangle(228+(mouseX-210)/22, 166, 215+(mouseX-210)/22, 155, 230+(mouseX-210)/22, 150);

  //head
  fill(245, 232, 177);
  triangle(160+(mouseX-210)/22, 130, 220+(mouseX-210)/22, 130, 190+(mouseX-210)/22, 180);

  //eyes
  stroke(0, 0, 0);
  strokeWeight(3);

  line(182+(mouseX-210)/30, 140, 173+(mouseX-210)/30, 142);
  line(198+(mouseX-210)/30, 140, 207+(mouseX-210)/30, 142);


  //pole
  strokeWeight(8);
  line(180, 400, 180, 340);

  noStroke();

  //moustache
  fill(0, 0, 0);
  triangle(196+(mouseX-210)/30, 155, 216+(mouseX-210)/30, 175, 211+(mouseX-210)/30, 180);
  triangle(196+(mouseX-210)/30, 155, 211+(mouseX-210)/30, 180, 191+(mouseX-210)/30, 160);

  triangle(184+(mouseX-210)/30, 155, 164+(mouseX-210)/30, 175, 169+(mouseX-210)/30, 180);
  triangle(184+(mouseX-210)/30, 155, 169+(mouseX-210)/30, 180, 189+(mouseX-210)/30, 160);
  
  //right forearm
  fill(240, 240, 255);
  rect(195+(mouseX-210)/22, 210, 232+(mouseX-210)/22, 220);
  ellipse(230+(mouseX-210)/22, 212, 17, 17);
  
  //left forearm
  fill(240, 240, 255);
  rect(148+(mouseX-210)/22, 210, 185+(mouseX-210)/22, 220);
  ellipse(150+(mouseX-210)/22, 212, 17, 17);  
  
  //hands
  fill(245, 232, 177);
  rect(185+(mouseX-210)/22, 200, 195+(mouseX-210)/22, 220);
  
  //eyes
  stroke(215, 202, 147);
  strokeWeight(1);

  line(190+(mouseX-210)/22, 200, 190+(mouseX-210)/22, 220);
  
  
}