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) {
...
}
}