xxxxxxxxxx
function setup() {
createCanvas(windowWidth, windowHeight);
background(150);
noStroke();
}
function draw() {
gridOfEyes();
}
function drawOneEyeTrackingAPosition(x, y, eyeDiameter, targetPos) {
const eyePos = createVector(x, y);
const innerRadius = eyeDiameter / 4;
fill('#f8faf8');
circle(eyePos.x, eyePos.y, eyeDiameter);
const pupilDist = min(innerRadius, dist(mouseX, mouseY, eyePos.x, eyePos.y));
const heading = p5.Vector.sub(targetPos, eyePos).heading();
const pupilOffset = p5.Vector.fromAngle(heading, pupilDist);
const pupilPos = p5.Vector.add(eyePos, pupilOffset);
fill('#673C00');
circle(pupilPos.x, pupilPos.y, eyeDiameter / 2);
}
function gridOfEyes() {
const spacing = 40;
for (let x = 0; x <= width; x = x + spacing) {
for (let y = 0; y <= height; y = y + spacing) {
const mousePos = createVector(mouseX, mouseY);
drawOneEyeTrackingAPosition(x, y, spacing - 10, mousePos);
}
}
}