> show canvas only <


/* built with Studio Sketchpad: 
 *   https://sketchpad.cc
 * 
 * observe the evolution of this sketch: 
 *   https://bard117s14.sketchpad.cc/sp/pad/view/ro.RPd5Ltc3Y9o/rev.29
 * 
 * authors: 
 *   Christopher Shea

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



/*
Chris Shea <[email protected])
  Feb. 4, 2014
    Self-Portrait
Comment: A conscious goal (aside from simply creating an image)
was to use proportions of the canvas dimensions to place/center
objects rather than using coordinates. As far as the "form of
the running program" goes, I would say that in this case, the 
image is as static as the code itself. Only the 'reading' of the 
code is dynamic insofar as it happens as a progression rather 
than all at once, and from this progression, meaning is derived, 
much as how grammar (in this case, syntax specifically) gives 
meaning to language ('I give you a gift' v.s. "you give me a gift',
ignoring the differences in case between 'I' and 'me'.)
*/

size(600,800);
smooth();
background(255);
noStroke();

// Grass
fill(37, 227, 0);
rect(0, 600, 600, 400); 

// Sky
fill(2, 240, 238);
rect(0, 0, 600, 600);

// Sun
fill(255, 255, 0);
ellipse(80, 90, 100, 100);

// Cloud
fill(255);
ellipse(115, 115, 65, 50);
ellipse(150, 100, 75, 65);
ellipse(185, 115, 65, 50);

// Shirt
fill(245, 40, 40);
rect(width/2-100, height/2+137, 200, 400);

// Neck
fill(250, 165, 94); // neck Tone, darker for contrast
rectMode(CENTER);
rect(width/2, height/2+100, 60, 74);
    // The collar portion of neck
    ellipseMode(CENTER);
    ellipse(width/2, height/2+137, 60, 30);

// Head
fill(250, 172, 98); // skin tone
ellipse(width/2, height/2, 150, 200);

// Eyes
fill(255);
ellipse(width/2-30, height/2-10, 30, 15); //left
ellipse(width/2+30, height/2-10, 30, 15); //right
  // Irises
   fill(245, 40, 40);
   ellipse(width/2-30, height/2-10, 10, 10); //left
   ellipse(width/2+30, height/2-10, 10, 10); //right
   
// Mouth
stroke(183, 54, 54);
strokeWeight(2);
fill(255);
arc(width/2, height/2+50, 50, 50, 0, PI, CHORD);

// Nose
stroke(198, 147, 80);
strokeWeight(2);
line(width/2, height/2-10, width/2+8, height/2+30); //long edge
line(width/2, height/2+30, width/2+8, height/2+30);

// Antenna
stroke(0);
strokeWeight(3);
line(width/2, height/2-100, width/2, height/2-145);
fill(245, 40, 40);
noStroke();
ellipse(width/2, height/2-145, 15, 15);

// Eyebrows 
  //keep this towards bottom and above any other stroked elements
stroke(95, 51, 9);
strokeWeight(2);
  //left
line(width/2-45, height/2-25, width/2-15, height/2-25);
  //right
line(width/2+45, height/2-25, width/2+15, height/2-25);