Category: Assignment-03-Face

Face – Charlotte

Screen Shot 2014-09-10 at 10.11.13 AM

The Code:

 

int[] x = {297, 297, 293, 330, 337, 342, 345, 335, 362, 379, 373, 362, 346, 342, 346, 333, 339, 335, 317, 315, 288, 216, 175, 150, 170, 150};
int[] y = {-6, -6, -5, 52, 91, 118, 143, 165, 203, 232, 253, 258, 262, 279, 299, 314, 331, 341, 352, 375, 400, 390, 408, 442, 500, 579};
color lerpC,lerpD,lerpE;
void setup(){
size(500,500);

}

void draw(){
//circles inside of head
fill(0);
rect(0,0,width,height);
  fill(255,10);
  stroke(255);
  for (int c=0;c<width*2;c+=20) {
    ellipse(10*((sin(.55-c))), 10*((cos(.55-c))), c, c);
  }


translate(-100,0);  
//profile 
  beginShape();
  noFill();
  fill(0);
  curveVertex(600, -14);
  curveVertex(600, -13);
  curveVertex(327, -10);
  for (int i = 0; i < x.length - 1; i++) {
    strokeWeight(5);
    stroke(0);
    curveVertex(x[i], y[i]);

  }
  curveVertex(637, 598);
  curveVertex(670, 452);
  endShape();
  
  for(int j=0; j<x.length-1; j++) {
  strokeWeight(1);
  color c1 = color(255,177,122);
  color c2 = color(144,122,255);
   lerpC= lerpColor(c1,c2,.33);
   lerpD= lerpColor(c1,c2,.66);
   
    stroke(lerpC);
    fill(lerpC);
  randomSeed(0);
  rect(x[j] + 20, y[j] * 1.2-50,3,3);
  rect(x[j] + random(-5,30), y[j]+ random(-3,3),3,3);
  
     stroke(c1);
     fill(c1);
  ellipse(x[j] + random(-8,20), y[j]+ random(0,1),3,3);
  ellipse(x[j] + random(-6,30), y[j]+ random(-5,5),3,3);
  
      stroke(lerpD);
      fill(lerpD);
float tX = x[j]+(random(39,50));
float tY = y[j]+(random(-2,2));
  triangle(tX,tY,tX+random(3,4),tY+random(-2,2),tX+(random(0,3)),tY+random(2));
  
    stroke(c2);
      point(x[j] + random(50,100), y[j]+ random(-4,60));
      point(x[j] + random(50,100), y[j]+ random(-13,4));
      point(x[j] + random(44,150), y[j]+ random(-10,10));
      point(x[j] + random(60,100), y[j]+ random(-4,4));
  }            
}

Self-Portrait

Screen-Shot-2014-09-09-at-10.18.44-PM

void setup(){
  size(400, 600);
}

void draw(){
  background(0,77,153);
  strokeWeight(4);
  stroke(0);
  
  //ears
  fill(255,218,185);
  ellipse(100,322,27,45);
  ellipse(300,322,27,45);
  
  //face
  fill(255,218,185);
  beginShape();
  curveVertex(270,250);
  curveVertex(130,250);
  curveVertex(100,300);
  curveVertex(120,380);
  curveVertex(200,420);
  curveVertex(280,380);
  curveVertex(300,300);
  curveVertex(270,250);
  curveVertex(130,250);
  endShape();

  //hair
  fill(139,69,19);
  ellipse(200,180,80,80);
  arc(200,290,210,180,PI,TWO_PI);
  noStroke();
  quad(94,290, 135,290, 130,310, 90,310);
  quad(135,290, 140,310, 170,310, 175,290);
  quad(175,290, 182,310, 230,310, 236,290);
  quad(236,290, 245,310, 275,310, 270,290);
  quad(270,290, 280,310, 310,310, 306,290); 
  stroke(0);
  strokeWeight(4);
  line(94,290, 90,310);
  line(135,290, 130,310);
  line(130,310, 90,310);
  line(135,290, 140,310);
  line(140,310, 170,310);
  line(170,310, 175,290);
  line(175,290, 182,310);
  line(182,310, 230,310);
  line(230,310, 236,290);
  line(236,290, 245,310);
  line(245,310, 275,310);
  line(275,310, 270,290);
  line(270,290, 280,310);
  line(280,310, 310,310);
  line(310,310, 306,290);
  
  //ribon
  fill(255,215,0);
  triangle(200,200, 130,170, 130,230);
  triangle(200,200, 270,170, 270,230);
  ellipse(200,200,30,30);
  
  //eyes
  fill(255);
  arc(150,340,40,30,PI,TWO_PI,CHORD);
  arc(250,340,40,30,PI,TWO_PI,CHORD);
  fill(0);
  noStroke();
  ellipse(250,331,14,14);
  ellipse(150,331,14,14);
  fill(255);
  ellipse(245,329,5,5);
  ellipse(145,329,5,5);
  //ellipse(252,330,8,8);
  //ellipse(152,330,8,8);
  
  //mouth
  stroke(0);
  strokeWeight(4);
  fill(255);
  arc(200,372,65,45,0,PI,CHORD);
  strokeWeight(2);
  line(176,372, 176,384);
  line(187,372, 187,390);
  line(200,372, 200,395);
  line(213,372, 213,390);
  line(224,372, 224,384);
  
}

Programing the Self

Full Disclosure: I went for a minimalistic approach because I got incredibly frustrated with using beginShape(), endShape(), and curveVertex() to get the exact shapes I wanted. This is also why the sketch has no eyes.
sketch.js code