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.