Attrattore strano di Peter de Jong
// height=400 lines=auto
let xPrec = 0;
let yPrec = 0;
let a = -2;
let b = -2;
let c = -1.2;
let d = 2;
function setup() {
createCanvas( 400, 400 );
background( 255 );
}
function draw() {
let x = sin( a*yPrec ) - cos( b*xPrec );
let y = sin( c*xPrec ) - cos( d*yPrec );
point( 200+x*90, 200+y*90 );
xPrec = x;
yPrec = y;
}
let a = -2;
let b = -2;
let c = -1.2;
let d = 2;
Parametri della formula di De Jong, reimpostabili per ottenere configurazioni diverse.
let x = sin( a*yPrec ) - cos( b*xPrec );
let y = sin( c*yPrec ) - cos( d*yPrec );
I calcoli tengono conto delle coordinate del punto precedente, oltre che dei parametri costanti della formula.
point( 200+x*90, 200+y*90 );
Le coordinate vengono mappate in modo da essere centrate sulla coordinata 200, 200 del canvas e avere una variazione massima da -180 (-2*90) a +180 pixel (2*90).
Anche in questo caso si può accelerare la visualizzazione dei punti creandone 100 o più a ogni fotogramma:
function draw() {
for (let i=0; i<100; ++i) {
...
}
}
Provare a modificare i 4 parametri della formula, liberamente o copiando quelli usati da Paul Bourke: Peter de Jong Attractors.
Per aumentare la profondità cromatica dei risultati si può rendere semitrasparente il "colore" del punto inserendo uno stroke(0,16) nel setup().