sketch
/*
* Amy Lee
* amyl2
* Section B
*/
//template for variable face
var backgroundColor = 0;
var shirtColor = 255;
var faceHeight = 300;
var faceWidth = 290;
var snoutWidth = 330;
var snoutHeight = 220;
var earWidth = 150;
var eyeSize = 50;
var noseHeight = 50;
var noseWidth = 80;
var nostHeight = 14;
var nostWidth = 8;
var mouthWidth = 50;
var mouthHeight = 30;
var eyebrow = 1;
var x;
var y;
var z;
var b1 = 224;
var b2 = 200;
var b3 = 206;
var b4 = 230;
var color1;
var color2;
var color3;
var color4;
function setup() {
createCanvas(640,480);
backgroundColor = color(random(255),random(255),random(255));
text("p5.js vers 0.9.0 test.", 10, 15);
}
function draw(){
// -PIG- //
noStroke();
background(backgroundColor);
//shirt
fill(shirtColor);
x = width/2;
y = height;
ellipse(x,y/2+snoutHeight,x,y*.6);
//collar of shirt
y = 265;
color1 = random(150,255);
color2 = random(150,255);
color3 = random(150,255);
color4 = random(150,255);
fill(color1,color2,color3,color4);
triangle(x-snoutWidth*.3,y+snoutHeight*.6,x-snoutWidth*.3,y+snoutHeight*.8,x,y+snoutHeight*.7);
triangle(x+snoutWidth*.3,y+snoutHeight*.6,x+snoutWidth*.3,y+snoutHeight*.8,x,y+snoutHeight*.7);
//overall head
y = height/2;
fill(255,218,224);
//snout area
ellipse(x,y+height*.15,snoutWidth,snoutHeight);
//face
ellipse(x,y,faceWidth,faceHeight);
//nose
fill(247,191,200);
ellipse(x,y+snoutHeight*.2,noseWidth,noseHeight);
//nostrils
fill(255,255,255);
var nL = x - snoutWidth/15;
var rL = x + snoutWidth/15;
ellipse(nL,y+height*.1,nostWidth,nostHeight);
ellipse(rL,y+height*.1,nostWidth,nostHeight);
//eyes
y = 240;
fill(48,33,25);
var eL = x - faceWidth/5
var eR = x + faceWidth/5
circle(eL,y,eyeSize);
circle(eR,y,eyeSize);
//overlapping eyes to make them appear closed
fill(255,218,224);
circle(eL,y-10,eyeSize);
circle(eR,y-10,eyeSize);
//ears
fill(247,191,200);
var earLX = x - faceWidth*.6;
var earY = 175;
var earRX = x + faceWidth*.6;
//left ear
triangle(earLX,earY,earLX+30,earY+50,earLX+60,earY);
//right ear
triangle(earRX-60,earY,earRX-30,earY+50,earRX,earY);
//mouth
y = 362;
fill(203,73,95);
ellipse(x,y,mouthWidth,mouthHeight);
fill(255,218,224);
ellipse(x,y+z,mouthWidth,mouthHeight);
//eyebrow
y = 230
fill(48,33,25);
if (eyebrow < 2) {
//sad
beginShape();
vertex(x-faceWidth*.33,b1);
vertex(x-faceWidth*.13,b2);
vertex(x-faceWidth*.1,b3);
vertex(x-faceWidth*.31,b4);
endShape();
beginShape();
vertex(x+faceWidth*.33,b1);
vertex(x+faceWidth*.13,b2);
vertex(x+faceWidth*.1,b3);
vertex(x+faceWidth*.31,b4);
endShape();
} else if (eyebrow < 3) {
//mad
beginShape();
vertex(x-faceWidth*.1,b1);
vertex(x-faceWidth*.33,b2);
vertex(x-faceWidth*.31,b3);
vertex(x-faceWidth*.13,b4);
endShape();
beginShape();
vertex(x+faceWidth*.1,b1);
vertex(x+faceWidth*.33,b2);
vertex(x+faceWidth*.31,b3);
vertex(x+faceWidth*.13,b4);
endShape();
} else {
//neutral
beginShape();
vertex(x-faceWidth*.33,b1);
vertex(x-faceWidth*.33,b2);
vertex(x-faceWidth*.1,b3);
vertex(x-faceWidth*.1,b4);
endShape();
beginShape();
vertex(x+faceWidth*.33,b1);
vertex(x+faceWidth*.33,b2);
vertex(x+faceWidth*.1,b3);
vertex(x+faceWidth*.1,b4);
endShape();
}
}
function mousePressed() {
backgroundColor = color(random(255), random(255), random(255));
shirtColor = color(random(255), random(255), random(255));
faceWidth = random(230,320);
faceHeight = random(240,360);
snoutWidth = random(260,380);
snoutHeight = random(160,260);
noseWidth = random(60,120);
noseHeight = random(60,90);
nostWidth = random(6,10);
nostHeight = random(10,16);
eyeSize = random(30,70);
mouthWidth = random(30,70);
z = random(-8,8);
b1 = random(221,228);
b2 = random(197,204);
b3 = random(203,207);
b4 = random(227,234);
eyebrow = random(1,4);
}