xxxxxxxxxx
let cols, rows;
let gridSize = 50;
let grid = [];
function setup() {
createCanvas(600, 600);
cols = width / gridSize;
rows = height / gridSize;
noLoop();
}
function draw() {
background(20);
translate(width / 2, height / 4);
for (let i = 0; i < cols; i++) {
for (let j = 0; j < rows; j++) {
let x = (i - j) * gridSize * 0.5;
let y = (i + j) * gridSize * 0.25;
push();
translate(x, y);
drawEscherTile(i, j);
pop();
}
}
}
function drawEscherTile(i, j) {
let h = random(20, 100); // Altezze variabili per creare illusioni
fill(120, 180, 255);
stroke(255);
beginShape();
vertex(0, 0);
vertex(gridSize * 0.5, gridSize * 0.25);
vertex(gridSize * 0.5, gridSize * 0.25 - h);
vertex(0, -h);
endShape(CLOSE);
fill(80, 140, 200);
beginShape();
vertex(0, -h);
vertex(gridSize * 0.5, gridSize * 0.25 - h);
vertex(-gridSize * 0.5, gridSize * 0.25 - h);
vertex(-gridSize * 0.5, gridSize * 0.25);
endShape(CLOSE);
fill(60, 100, 180);
beginShape();
vertex(-gridSize * 0.5, gridSize * 0.25);
vertex(0, 0);
vertex(0, -h);
vertex(-gridSize * 0.5, gridSize * 0.25 - h);
endShape(CLOSE);
}