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().