Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
void setup() {
  //Set the size of the window
  size(400, 400);
  strokeWeight(0.5);
  frameRate(30);
}

void draw() {
  //Draw a lightblue background
  background(7, 229, 243);

  //Draw silhouette
  fill(0);
  ellipseMode(CENTER);
  ellipse(90 + mouseX*1, 20, 70, 30);
  rectMode(CENTER);
  rect(55 + mouseX*1, 20, 60, 30);
  triangle(20 + mouseX*1, 55, 30 + mouseX*1, 20, 70 + mouseX*1, 20 );

  //vulcus's shadow
  ellipseMode(CENTER);
  fill(0, 0, 0, 63);
  ellipse(200, 375, 300, 30);

  //Draw vulcus's tail
  fill(230);
  quad(200+5*sin(frameCount*.06), 240, 321+5*sin(frameCount*.06), 120, 324+5*sin(frameCount*.06), 120, 202+5*sin(frameCount*.06), 280);

  //Draw vulcus's stomach
  ellipseMode(CENTER);
  fill(250);
  ellipse(200, 200+5*sin(frameCount*.06), 60, 120);

  //Draw vulcus's chest A
  ellipseMode(CENTER);
  fill(190);
  ellipse(200, 150+5*sin(frameCount*.06), 130, 80);

  //Draw vulcus's chest B
  ellipseMode(CENTER);
  fill(230);
  ellipse(200, 140+5*sin(frameCount*.06), 100, 60);

  //Draw vulcus's neck
  fill(250);
  triangle(180, 135, 200, 75, 220, 135);

  //Draw vulcus's head A
  ellipseMode(CORNER);
  fill(220);
  ellipse(100+mouseX*.01, 33+5*sin(frameCount*.06), 200+mouseX*.01, 70);

  //Draw vulcus's head B 
  ellipseMode(CENTER);
  fill(250);
  ellipse(165+mouseX*.01, 65+5*sin(frameCount*.06), 145+mouseX*.01, 60);

  //Draw vulcus's eye
  ellipse(139+mouseX*.01, 65+5*sin(frameCount*.06), 20+mouseX*.01, 10-mouseY*0.1);

  //Draw vulcus's head C
  ellipseMode(CENTER);
  fill(232, 151, 19, 63);
  ellipse(160+mouseX*.01, 65+5*sin(frameCount*.06), 160+mouseX*.01, 60);

  //Draw vulcus's waist
  fill(250);
  triangle(180, 250, 190, 290+5*sin(frameCount*.06), 230, 243);

  //Draw vulcus's shoulders
  ellipse(130, 140+5*sin(frameCount*.06), 30, 30);
  ellipse(270, 140+5*sin(frameCount*.06), 30, 30);
  fill(6, 180, 270);
  ellipse(125, 135+5*sin(frameCount*.06), 18, 16);
  ellipse(275, 135+5*sin(frameCount*.06), 18, 16);

  //Draw vulcus's biceps
  ellipseMode(CORNER);
  fill(250);
  ellipse(255, 155+5*sin(frameCount*.06), 24, 64);
  ellipseMode(CORNER);
  ellipse(75, 150+5*sin(frameCount*.06), 64, 24);

  //Draw vulcus's forearms
  fill(190);
  ellipseMode(CENTER);
  ellipse(225, 265+5*sin(frameCount*.06), 50, 40);
  fill(230);
  ellipseMode(CENTER);
    ellipse(180, 162+5*sin(frameCount*.06), 20, 15);
  ellipseMode(CENTER);
  ellipse(230, 320+5*sin(frameCount*.06), 28, 66);
  fill(250);
  quad(220, 310, 210, 267+2*sin(frameCount*.06), 250, 262+2*sin(frameCount*.06), 240, 310+5*sin(frameCount*.06));
  fill(190);
  rectMode(CENTER);
  rect(185, 175+5*sin(frameCount*.06), 35, 20);
  fill(230);
  ellipseMode(CENTER);
  fill(230);
  ellipse(105, 175 +5*sin(frameCount*.06), 145, 32);
  ellipseMode(CENTER);
  fill(230);
  ellipse(266, 260+5*sin(frameCount*.06), 32, 100);

  //Draw vulcus's fingers
  fill(220);
  ellipseMode(CENTER);
  ellipse(210, 169+5*sin(frameCount*.06), 30, 10);
  ellipseMode(CENTER);
  ellipse(210, 183+5*sin(frameCount*.06), 30, 10);
  ellipseMode(CENTER);
 ellipse(276, 338+5*sin(frameCount*.06), 10, 30);
  ellipseMode(CENTER);
  ellipse(256, 338+5*sin(frameCount*.06), 10, 30);
  ellipseMode(CORNER);
  ellipse(241, 301+5*sin(frameCount*.06), 15, 20);
  fill(190);
  rect(266, 315+5*sin(frameCount*.06), 25, 35);

  //Draw vulcus's legs
  ellipseMode(CORNER);
  ellipse(50, 250+5*sin(frameCount*.06), 145, 30);
  fill(250);
  quad(54, 269, 140, 320+2*sin(frameCount*.06), 142, 320+2*sin(frameCount*.06), 100, 270+2*sin(frameCount*.06));
  fill(220);
  ellipseMode(CORNER);
  ellipse(114, 292+5*sin(frameCount*.06), 28, 66);
  fill(190);
  ellipseMode(CENTER);
  ellipse(117, 360, 40, 20);
  ellipseMode(CENTER);
  ellipse(235, 355, 35, 30);
  fill(250);
  triangle(80, 370, 110, 350, 120, 370);
  triangle(215, 358, 225, 380, 233, 358);
  triangle(237, 358, 255, 380, 252, 358);
}