xxxxxxxxxx
// let: numero di cerchi concentrici
// rectMode(CENTER): considera i parametri di rect come se fosse ellipse
let M = 50;
function setup() {
createCanvas(windowWidth, windowHeight);
rectMode(CENTER);
background(255);
for(let i = 1; i < M; i++){
greca(random(width), random(height), random(PI/2), random(.4), 20);
}
}
function draw() {
// background(255);
}
// push: salva il sistema di riferimento
// translate: sposta il sistema di riferimento
// rotate: ruota il sistema di riferimento
// scale: riscala il sistema di riferimento
// pop: ripristina il veccho sistema di riferimento
function greca(x, y, angolo, scala, N) {
push();
translate(x, y);
rotate(angolo);
scale(scala);
// disegno
for (let i = 1; i <= N; i++) {
strokeWeight(3);
stroke(0);
fill(map(i, 1, N, 0, 255), 0, 0, 100);
// ellipse(map(i, 1, N, width / 2, mouseX), map(i, 1, N, height / 2, mouseY), 600 - i * 30);
rect(width / 2, height / 2, map(i, 1, N, 500, 0));
}
pop();
}