let n = 5;
let t = 0;
function setup() {
cnv = createCanvas(500, 500);
angleMode(DEGREES);
noStroke();
strokeWeight(0.2);
c2 = color(0, 0, 0);
c2.setAlpha(10);
stroke(c2);
}
function draw() {
background(c2);
translate(width / 2, height / 2);
t = frameCount / 30;
drawGrid(width, true, 255);
}
function drawGrid(d, b, c) {
for (let i = -2; i < n + 1; i++) {
for (let j = -2; j < n + 1; j++) {
push();
rotate(720 * sin((-t * j * i) / 500));
translate(100 * sin(t * i * j), 100 * sin(t * i * j));
rotate(360 * sin(t));
color1 = color(
255 *
(sin(millis() / 30 + i + j + t) * sin(millis() / 60 + j * i + 90)),
255 *
(sin(millis() / 40 + i + j - t) * sin(millis() / 60 + j * i + 90)),
255 * (sin(millis() / 60 + i + j) * sin(millis() / 60 + j * i + 90))
);
color1.setAlpha(100);
fill(color1);
rect(
-width / 2 + (d / n) * i,
-width / 2 + (d / n) * j,
d / n,
d / n,
4,
4,
4,
4
);
if (b) {
push();
translate((d / n) * i, (d / n) * j);
drawGrid(d / n, false, c);
pop();
}
pop();
}
}
}
function mousePressed() {
frameCount = 0;
setup();
draw();
}