xxxxxxxxxx
31
function setup() {
createCanvas(600, 600);
rectMode(CENTER);
fill(255);
stroke(255);
}
function draw() {
background(0);
const maxLevel = constrain(round(mouseX/width * 4), 0, 4);
drawSquare(width/2, height/2, min(width, height), maxLevel);
}
function drawSquare(x, y, length, maxLevel, level = 0) {
if(level == maxLevel || length <= 1) {
square(x, y, length);
return;
}
const newLength = length/3;
for(let i = -1; i <= 1; i ++) {
for(let j = -1; j <= 1; j ++) {
if(i == 0 && j == 0) {
continue;
}
drawSquare(x + i * newLength, y + j * newLength, newLength, maxLevel, level + 1);
}
}
}