> show canvas only <


/* built with Studio Sketchpad: 
 *   https://sketchpad.cc
 * 
 * observe the evolution of this sketch: 
 *   https://bard117s14.sketchpad.cc/sp/pad/view/ro.J6BZI278FuQ/rev.60
 * 
 * authors: 
 *   Zoe Azulay

 * 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, "Self Portrait II", created by Keith O'Hara
// http://bard117s14.sketchpad.cc/sp/pad/view/ro.AfNeVls4vddifn/rev.71

//press any key to watch her dance!    

float r=100;
float g=100;
float b=100;
float x=100;
float y=50;
float armx=450;
float army=400;
float speed=1;
float legx=50;
float legy=450;
void setup() {
  size(600, 400);


  frameRate(60);
}
void draw() {

  background(138, 212, 245);
  //clouds
  stroke(255);
  strokeWeight(50);
  point(100, 50); 
  point(120, 50);
  point(140, 50);
  point(500, 300);
  point(510, 300);
  point(520, 300);

  noStroke();
  fill(255, 255, 50);
  ellipse(475, 100, 100, 120);
  strokeWeight(1);
  stroke(0);
  line(475, 160, armx, army);
  fill(255);
  noStroke();
  strokeWeight(0);
  rect(445, 80, 15, 15);

  if (keyPressed) {

    strokeWeight(1);
    line(300, 305, 300, 255);
    line(310, 280, 290, 280);
    background(r, g, b);
    r=random(20, 255);
    g=random (10, 255);
    b=random (10, 255);
    stroke(255);
    strokeWeight(0);
    fill(250, 250, 250, 20);
    ellipse(100, 100, 100, 100);
    noStroke();
    fill(r, g, b);
    r=random(20, 255);
    g=random (10, 255);
    b=random (10, 255);

    ellipse(x, y, 20, 20);
    x=random(70, 150);
    y=random(80, 135);


    stroke(161, 41, 214);
    strokeWeight(50);
    line(240, 400, 200, 400);
    line(360, 400, 410, 400);
    frameRate(90); 
    line(430, 400, armx, army);
    army=army-speed;
  }

  fill(255, 207, 160);
  noStroke();
  ellipse(300, 200, 200, 300);


  //eyes
  point(295, 245);
  point(310, 245);
  strokeWeight(0);
  stroke(0);
  //Neck
  fill(161, 41, 214);
  rectMode(CENTER);
  rect(300, 400, 75, 100);
  strokeWeight(50);
  //arm


  if (army<100) {
    speed=speed*-1;
  }
  else if (army>300) {
    speed=1;
  }


  //eyes
  strokeWeight(20);
  stroke(24, 80, 9);
  point(260, 175);
  point(340, 175);
  //lips
  strokeWeight(20);
  stroke(255, 0, 0);
  line(290, 280, 310, 280);
  line(290, 265, 310, 265);
  stroke(161, 41, 214);

  //hair
  strokeWeight(30);
  stroke(160, 79, 18);
  point(300, 60);
  point(300, 75);
  point(250, 70);
  point(350, 65);
  point(310, 60);
  strokeWeight(50);
  point(200, 150);
  point(210, 140);
  point(210, 120);
  point(210, 100);
  point(200, 130);
  point(200, 90);
  point(300, 90);
  point(350, 100);
  point(325, 100);
  point(250, 60);
  point(225, 70);
  point(200, 250);
  point(390, 250);
  point(240, 100);
  point(200, 290);
  point(200, 220);
  point(200, 200);
  point(390, 200);
  point(390, 220);
  point(390, 180);
  point(390, 260);
  point(390, 150);
  point(380, 130);
  point(360, 120);
  point(350, 110);
  point(340, 90);
  point(300, 90);
  point(300, 70);
  point(320, 70);
  point(290, 70);
  point(390, 280);
  point(360, 290);
  point(200, 330);
  point(200, 350);

  if (keyPressed) {
    //mouth 
    noStroke();
    fill(255, 0, 0);
    ellipse(300, 280, 50, 100);
    fill(255);
    ellipse(300, 280, 25, 50);
    //earrings 
    stroke(225, 190, 49);
    strokeWeight(80);
    point(200, 250);
    point(390, 250);
    //necklace
    strokeWeight(20);
    point(340, 380);
    point(320, 385);
    point(300, 395);
    point(280, 385);
    point(260, 380);

    //Eye Lashes
    strokeWeight(6);
    stroke(0);
    line(265, 167, 270, 130);
    line(260, 167, 255, 130);
    line(255, 167, 240, 130);
    line(265, 183, 275, 215);
    line(260, 183, 254, 215);
    line(255, 183, 240, 215);
    line(335, 168, 327, 140);
    line(340, 168, 345, 140);
    line(345, 168, 360, 140);
    line(335, 183, 325, 215);
    line(340, 183, 345, 215);
    line(345, 183, 360, 215);

    //eyes
    strokeWeight(20);
    stroke(24, 80, 9 );
    point(260, 175);
    point(340, 175);

    //bow
    strokeWeight(20);
    stroke(245, 138, 238);
    point(340, 70);
    point(345, 80);
    point(350, 90);
  }
  //fingers
  ;
  stroke(161, 41, 214);
  strokeWeight(50);
  line(240, 400, 200, 400);
  line(360, 400, 410, 400);

  //arm

  strokeWeight(50);
  line(430, 400, armx, army);
  stroke(255, 207, 160);
  strokeWeight(60);
  point(armx, army);
}