Cara Simple amb p5.js

Codi Font


function setup() {
  createCanvas(400, 400);
}

function draw() {
  background(220);

  // Posició de la cara
  let cx = width / 2;
  let cy = height / 2;
  let faceSize = 200;

  // Cara
  fill(255, 224, 189);
  ellipse(cx, cy, faceSize, faceSize);

  // Celles
  stroke(0);
  strokeWeight(4);
  let browY = cy - 50;

  // Exemple: pots afegir moviment random o noise a les celles:
  // let browOffset = random(-5, 5);
  // let browOffset = noise(frameCount * 0.05) * 10 - 5;

  line(cx - 40, browY, cx - 10, browY - 5); // esquerra
  line(cx + 10, browY - 5, cx + 40, browY); // dreta

  // Moviment ulls amb sinus (parpelleig)
  let t = millis() / 500; // temps per sinus
  let eyeOpen = map(sin(t), -1, 1, 5, 20); // ulls s'obren i tanquen

  // Exemple amb random:
  // let eyeOpen = map(sin(t), -1, 1, 5, 20) + random(-2,2);
  // Exemple amb noise:
  // let eyeOpen = map(sin(t), -1, 1, 5, 20) + (noise(frameCount*0.1)*4 - 2);

  // Ulls
  fill(0);
  noStroke();
  ellipse(cx - 25, cy - 20, 20, eyeOpen); // esquerra
  ellipse(cx + 25, cy - 20, 20, eyeOpen); // dreta

  // Boca amb arc
  noFill();
  stroke(0);
  strokeWeight(3);

  // Exemple: pots fer que la boca s'animi amb noise o random:
  // let smileOffset = map(sin(t), -1, 1, 0, 10); // sinus
  // let smileOffset = noise(frameCount*0.05)*15; // noise
  // arc(cx, cy + 40 + smileOffset, 80, 40, 0, PI);

  arc(cx, cy + 40, 80, 40, 0, PI); // somriure simple
}