For my project, I decided that instead of coding a typical human face, I wanted to show different animal faces. I wanted the variability to come from the colors of the physical attributes of the animal, its background color, as well as its species! I chose four different animals– a cat, a bear, a koala, and a bunny. I kept the size of their attributes the same since I wanted some consistency with the other randomness.
//Mirie Kim
//section A
function setup() {
createCanvas(640, 480);
background(220);
text("p5.js vers 0.9.0 test.", 10, 15);
}
var animal = 0;
var backgroundColorR = 230;
var backgroundColorG = 220;
var backgroundColorB = 250;
var headEarColorR = 0; //and whiskers
var headEarColorG = 0;
var headEarColorB = 0;
var innerEarNoseColorR = 250; //and snout
var innerEarNoseColorG = 210;
var innerEarNoseColorB = 230;
var eyeColorR = 0;
var eyeColorG = 0;
var eyeColorB = 0;
var smile = 3;
var bearNoseColorR = 90; //and bunny's
var bearNoseColorG = 209;
var bearNoseColorB = 49;
var smileX = 15;
var smileY = 40;
function draw() {
if(animal >= 0 & animal < 1){ //cat
noStroke();
background(backgroundColorR, backgroundColorG, backgroundColorB);
fill(headEarColorR,headEarColorG,headEarColorB);
ellipse(320,240,240,220); //head
triangle(205,205, 260, 145, 200, 130); //ears
triangle(435,205, 380, 145, 440, 130);
fill(innerEarNoseColorR, innerEarNoseColorG, innerEarNoseColorB);
triangle(215,195, 250, 155, 215, 150); //inside ears
triangle(425,195, 390, 155, 425, 150);
fill(255);
ellipse(260,240, 80, 85); //eyes
ellipse(380,240, 80, 85);
fill(eyeColorR,eyeColorG,eyeColorB);
ellipse(268,240, 50, 60); //pupils
ellipse(372,240,50,60);
fill(255);
ellipse(280,236, 25,35);
ellipse(360,236 ,25,35);
fill(innerEarNoseColorR, innerEarNoseColorG, innerEarNoseColorB);
triangle(320,280, 310, 270, 330, 270); //nose
stroke(headEarColorR,headEarColorG,headEarColorB);
strokeWeight(2);
line(390, 285, 460, 280); //whiskers
line(390, 295, 450, 300);
line(180, 280, 250, 285);
line(180, 300, 250, 295);
}
else if (animal >= 1 & animal < 2) { //bear
background(backgroundColorR, backgroundColorG, backgroundColorB);
noStroke();
fill(headEarColorR,headEarColorG,headEarColorB);
ellipse(225,165,90); //ears
ellipse(415,165,90);
fill(innerEarNoseColorR, innerEarNoseColorG, innerEarNoseColorB);
ellipse(225,165,50); //inside ears
ellipse(415,165,50);
fill(headEarColorR,headEarColorG,headEarColorB);
ellipse(320,240,240,220); //head
//eyes
fill(255);
ellipse(260,240, 80, 85);
ellipse(380,240, 80, 85);
fill(eyeColorR,eyeColorG,eyeColorB);
ellipse(268,240, 50, 60); //pupils
ellipse(372,240,50,60);
fill(255);
ellipse(280,236, 25,35);
ellipse(360,236 ,25,35);
fill(innerEarNoseColorR, innerEarNoseColorG, innerEarNoseColorB);
ellipse(320, 280, 55,40); //snout area
fill(bearNoseColorR, bearNoseColorG, bearNoseColorB);
triangle(320,280, 310, 270, 330, 270);
}
else if (animal >= 2 & animal < 3) { //koala
background(backgroundColorR, backgroundColorG, backgroundColorB);
noStroke();
fill(headEarColorR,headEarColorG,headEarColorB);
ellipse(225,185,140); //ears
ellipse(415,185,140);
fill(innerEarNoseColorR, innerEarNoseColorG, innerEarNoseColorB);
ellipse(225,185,80); //inside ears
ellipse(415,185,80);
//head
fill(headEarColorR,headEarColorG,headEarColorB);
ellipse(320,240,240,220);
//eyes
fill(255);
ellipse(260,240, 80, 85);
ellipse(380,240, 80, 85);
fill(eyeColorR,eyeColorG,eyeColorB);
ellipse(268,240, 50, 60); //pupils
ellipse(372,240,50,60);
fill(255);
ellipse(280,236, 25,35);
ellipse(360,236 ,25,35);
//nose
fill(innerEarNoseColorR, innerEarNoseColorG, innerEarNoseColorB);
ellipse(320,275, 45, 57);
}
else if (animal >= 3 & animal < 4) { //bunny
background(backgroundColorR, backgroundColorG, backgroundColorB);
noStroke();
fill(headEarColorR,headEarColorG,headEarColorB);
ellipse(260,145,60,250); //ears
ellipse(380,145, 60, 250);
fill(innerEarNoseColorR, innerEarNoseColorG, innerEarNoseColorB);
ellipse(260,145,30, 150); //inside ears
ellipse(380,145,30, 150);
fill(headEarColorR,headEarColorG,headEarColorB);
ellipse(320,240,240,220); //head
//eyes
fill(255);
ellipse(260,240, 80, 85);
ellipse(380,240, 80, 85);
fill(eyeColorR,eyeColorG,eyeColorB);
ellipse(268,240, 50, 60); //pupils
ellipse(372,240,50,60);
fill(255);
ellipse(280,236, 25,35);
ellipse(360,236 ,25,35);
fill(innerEarNoseColorR, innerEarNoseColorG, innerEarNoseColorB);
ellipse(320, 280, 55,40); //snout area
fill(bearNoseColorR, bearNoseColorG, bearNoseColorB);
triangle(320,280, 310, 270, 330, 270);
stroke(headEarColorR,headEarColorG,headEarColorB);
strokeWeight(2);
line(390, 285, 460, 280); //whiskers
line(390, 295, 450, 300);
line(180, 280, 250, 285);
line(180, 300, 250, 295);
}
}
function mousePressed() {
animal = random(0,4); //produces decimal so have to refer to range in if/else statements
backgroundColorR = random(0,255);
backgroundColorG = random(0,255);
backgroundColorB = random(0,255);
headEarColorR = random(0,255);
headEarColorG = random(0,255);
headEarColorB = random(0,255);
innerEarNoseColorR = random(0,255);
innerEarNoseColorG = random(0,255);
innerEarNoseColorB = random(0,255);
eyeColorR = random(0,255);
eyeColorG = random(0,255);
eyeColorB = random(0,255);
bearNoseColorR = random(0,255);
bearNoseColorG = random(0,255);
bearNoseColorB = random(0,255);
}