Variable Faces:
sketch
//holly liu
//section D
//variable faces
var faceW = 200
var faceH = 200
var mouthW = 40
var mouthH = 50
function setup(){
createCanvas(480, 640);
background(255);
}
function draw(){
fill(255);
strokeWeight(3);
stroke(0);
faceW = random(200, 350);
faceH = random(200, 510);
ellipse((width/2), (height/2), faceW, faceH);
var r = random(4);
if(r < 1) {
circle(((width/2) - (faceW/3)), (height/2), 50); //left eye
circle(((width/2) + (faceW/3)), (height/2), 50); //right eye
fill(0);
circle(((width/2) - (faceW/3)), (height/2), 30); //left pupil
circle(((width/2) + (faceW/3)), (height/2), 30); //right pupil
} else if(r < 2) {
arc(((width/2) - (faceW/3)), (height/2), 60, 100, PI, TWO_PI) //left brow
arc(((width/2) + (faceW/3)), (height/2), 60, 100, PI, TWO_PI) //right brow
circle(((width/2) - (faceW/3)), (height/2), 50); //left eye
circle(((width/2) + (faceW/3)), (height/2), 50); //right eye
fill(0);
circle(((width/2) - (faceW/3)), (height/2), 10); //left pupil
circle(((width/2) + (faceW/3)), (height/2), 10); //right pupil
} else if(r < 3) {
arc(((width/2) - (faceW/3)), (height/2), 50, 75, 0, PI) //uW
arc(((width/2) + (faceW/3)), (height/2), 50, 75, 0, PI) //Wu
} else {
fill(0);
circle(((width/2) - (faceW/3)), (height/2), 50); //left eye
circle(((width/2) + (faceW/3)), (height/2), 50); //right eye
fill(255);
circle(((width/2) - (faceW/3)) - 15, (height/2), 15); //L left sparkle
circle(((width/2) - (faceW/3)), (height/2) - 15, 15); //l right sparkle
circle(((width/2) + (faceW/3)) - 15, (height/2), 15); //r left sparkle
circle(((width/2) + (faceW/3)), (height/2) - 15, 15); //r right sparkle
}
r = random(3);
if(r < 1) {
noFill();
arc(((width/2) - (mouthW/2)), (height/2), mouthW, mouthH, 0, PI); //uwu left
arc(((width/2) + (mouthW/2)), (height/2), mouthW, mouthH, 0, PI); //uwu right
} else if (r < 2) {
fill(0)
ellipse((width/2), ((height/2) + (faceH*(1/5))), mouthW, mouthH); //:0
} else {
fill(0);
noStroke(); //grin
arc((width/2), ((height/2) + (faceH*(1/5))), (mouthW*3), (mouthH*2), 0, PI);
}
r = random(3);
if(r < 1){
strokeWeight(3);
stroke(0);
noFill();
arc(((width/2) + 50), ((height/2) - (faceH/2)), 100, 100, PI, PI+((3/4)*PI)); //3 hairs
arc(((width/2) - 50), ((height/2) - (faceH/2)), 100, 100, PI+((1/4)*PI), TWO_PI);
line((width/2), ((height/2) - (faceH/2)), (width/2), (((height/2) - (faceH/2)) - 100));
console.log(1);
} else if(r < 2) {
strokeWeight(3);
stroke(0);
line((width/2), ((height/2) - (faceH/2)), (width/2), (((height/2) - (faceH/2)) - 50)); //flower
fill(255);
circle((width/2), (((height/2) - (faceH/2)) - 40), 20, 20);
circle((width/2), (((height/2) - (faceH/2)) - 60), 20, 20);
circle(((width/2) + 10), (((height/2) - (faceH/2)) - 50), 20, 20);
circle(((width/2) - 10), (((height/2) - (faceH/2)) - 50), 20, 20);
circle((width/2), (((height/2) - (faceH/2)) - 50), 20, 20);
noFill();
arc(((width/2) + 25), ((height/2) - (faceH/2)), 50, 50, PI, PI + HALF_PI);
arc(((width/2) - 25), ((height/2) - (faceH/2)), 50, 50, PI + HALF_PI, TWO_PI);
line(((width/2) - 25), ((height/2) - (faceH/2) - 25), (width/2), ((height/2) - (faceH/2)));
line(((width/2) + 25), ((height/2) - (faceH/2) - 25), (width/2), ((height/2) - (faceH/2)));
console.log(2);
} else {
strokeWeight(3);
stroke(0);
fill(255);
arc((width/2), ((height/2) - 30), (faceW + 20), (faceH - 20), PI, TWO_PI); //bowl cut
line(((width/2) - (faceW/2) - 10), ((height/2) - 30), ((width/2) + (faceW/2) + 10), ((height/2) - 30));
line((width/2), ((height/2) - 30), (width/2), ((height/2) - (faceH * (1/4))));
line(((width/2) - (faceW/4)), ((height/2) - 30), ((width/2) - (faceW/6)), ((height/2) - (faceH * (1/4))));
line(((width/2) + (faceW/4)), ((height/2) - 30), ((width/2) + (faceW/6)), ((height/2) - (faceH * (1/4))));
console.log(3);
}
noLoop();
}
function mousePressed(){
clear();
draw();
}