Attrattore strano di Hénon

Alcune formule permettono di ottenere sequenze di punti casuali che tendono a essere "attratte" verso particolari configurazioni.

// height=240 lines=auto
let xPrec = 0;
let yPrec = 0;

function setup() {
    createCanvas( 600, 240 );
    background( 255 );
}

function draw() {

    let x = yPrec + 1-1.4*(xPrec*xPrec);
    let y = 0.3*xPrec;

    point( 300+x*220, 120-y*220 );

    xPrec = x;
    yPrec = y;
}
let x = yPrec + 1-1.4*(xPrec*xPrec);
let y = 0.3*xPrec;

I calcoli tengono conto delle coordinate del punto precedente.

point( 300+x*220, 120-y*220 );

Le coordinate vengono mappate per essere centrate sulla coordinata 300, 120 del canvas e avere una variazione massima da -220 a +220 pixel. Con la funzione map() l'istruzione sarebbe potuta essere: point( map(x,-1,1,80,520), map(y,-1,1,340,-100) )

Per accelerare la visualizzazione dei punti, è possibile farne calcolare 100 a fotogramma inserendo tutto il codice del draw() all'interno di un for:

function draw() {
    for (let i=0; i<100; ++i) {
        ...
    }
}