Configurazioni spiraliformi
Se il raggio viene decrementato a ogni ciclo si ottiene una spirale.
// height=300 lines=auto
function setup() {
createCanvas( 300, 300 );
background( 220 );
let raggio = 130;
let passoRadianti = TWO_PI/60;
let passoRaggio = 0.4; // 🡨
for (let n=0; n<300; n++) // 🡨
{
let radianti = n*passoRadianti;
let x = 150 + cos(radianti)*raggio;
let y = 150 + sin(radianti)*raggio;
circle( x,y, 4 );
raggio -= passoRaggio; // 🡨
}
}
let passoRaggio = 0.4;
Valore di riduzione del raggio a ogni ciclo del for
.
for (let n=0; n<300; n++)
Numero di punti equivalente a 5 giri completi del valore di radianti
(300/passoRadianti
).
raggio -= passoRaggio;
Riduzione progressiva del valore di raggio
.
Provare a modificare i valori di passoRaggio
.
Per ottenere lo stesso tipo di spirale, anziché usare un semplice incremento, si può prevedere l'uso di un parametro (a
) e calcolare il raggio con un'espressione matematica (a * theta
) :
function setup() {
createCanvas( 300, 300 );
background( 220 );
let a = 4; // parametro usato nella formula
for (let n=0; n<300; n++)
{
let theta = n*0.11; // angolo (ex 'radianti')
let raggio = a * theta; // spirale archimedea semplificata
let x = 150 + cos(theta) * raggio;
let y = 150 + sin(theta) * raggio;
circle(x, y, 4);
}
}
Il procedimento è meno intuitivo per chi non ha conoscenze di matematica ma permette di cambiare facilmente tipologia di spirale. Per vedere alcuni esempi è possibile intervenire su uno sketch interattivo con formule attivabili o disattivabili come commenti (//
) e parametri regolabili spostando il mouse e la sua rotellina.