xxxxxxxxxx
function setup() {
createCanvas(400, 400);
noLoop(); // Only draw once per refresh
}
function draw() {
background(220);
let faceX = width / 2;
let faceY = height / 2;
let faceSize = random(150, 200);
let eyeSize = random(10, 30);
let eyeOffsetX = random(30, 50);
let eyeOffsetY = random(20, 40);
let mouthWidth = random(30, 80);
let mouthHeight = random(10, 30);
let eyebrowTilt = random(-PI / 6, PI / 6);
let mood = random(["happy", "sad", "neutral", "surprised"]);
// Draw face
fill(255, 204, 153);
ellipse(faceX, faceY, faceSize);
// Draw eyes
fill(0);
ellipse(faceX - eyeOffsetX, faceY - eyeOffsetY, eyeSize);
ellipse(faceX + eyeOffsetX, faceY - eyeOffsetY, eyeSize);
// Draw eyebrows
stroke(0);
strokeWeight(3);
push();
translate(faceX - eyeOffsetX, faceY - eyeOffsetY - 10);
rotate(eyebrowTilt);
line(-10, 0, 10, 0);
pop();
push();
translate(faceX + eyeOffsetX, faceY - eyeOffsetY - 10);
rotate(-eyebrowTilt);
line(-10, 0, 10, 0);
pop();
// Draw mouth based on mood
noFill();
stroke(0);
strokeWeight(2);
if (mood === "happy") {
arc(faceX, faceY + 40, mouthWidth, mouthHeight, 0, PI);
} else if (mood === "sad") {
arc(faceX, faceY + 40, mouthWidth, mouthHeight, PI, 0);
} else if (mood === "neutral") {
line(faceX - mouthWidth / 2, faceY + 40, faceX + mouthWidth / 2, faceY + 40);
} else if (mood === "surprised") {
ellipse(faceX, faceY + 40, mouthWidth / 2, mouthHeight);
}
}