Calcoli iterativi: l'insieme di Mandelbrot

Il colore di ogni pixel è ottenuto partendo da un numero complesso C costituito da un valore immaginario Im(C) mappato sull'asse delle y e un valore reale Re(C) mappato sull'asse delle x.

Per ogni punto viene eseguito ripetutamente il calcolo: Z = Z² + C con Z che parte dalla coordinata 0,0 e viene riutilizzato nei calcoli successivi. Se il suo valore non arriva mai a una distanza superiore a 2, il valore di C viene considerato appartenente all'insieme di Mandelbrot e il pixel corrispondente viene colorato di nero. In tutti gli altri casi si usa il numero di iterazioni compiute prima del superamento e lo si usa come indice di una palette cromatica da cui ricavare il colore del pixel corrispondente a C.

Modificando i limiti dei valori immaginari e reali di C, si riescono a ottenere dettagli interessanti soprattutto sul confine con i punti dell'insieme di Mandelbrot:

Sul Web Editor si trova uno sketch in p5.js che genera l'insieme di Mandelbrot e permette di zommare sul punto in cui si clicca. Non è la versione più efficiente possibile (per la quale sarebbe meglio utilizzare i più complessi shader) ma è ricca di commenti in italiano.

La "esplorazione" dei frattali si può fare in tempo reale anche grazie al sito FractalLab dove è possibile vedere sia l'insieme di Mandelbrot [vedi tasto "2D"] che i frattali 3D.