GIANLUCA GHETTINI'S WEBSITE

CONTACT              DONATE


07/11/2011

Un piccolo programma in C per la generazione del frattale di Mandelbrot.

I frattali sono degli oggetti geometrici che si ripetono nella loro struttura allo stesso modo su scale diverse, ossia godono della proprietà di autosimilarità e generano una complessità virtualmente infinita. La natura stessa crea e modella tutto secondo questi schemi auto-simili, ovviamente in forma approssimata; fiori, alberi, nuvole, le proteine e lo stesso universo sono tutti esempi di frattali. Il più famoso oggetto frattale è l'insieme di Mandebrot ed è generato da una formula estremamente semplice che ben si adatta ad essere elaborata da un computer.

Il programma non raggiuge questo livello di dettaglio, comunque se la cava abbastanza bene. Viene generato a video l'intero frattale iniziando a zoomare all'interno sempre più in profondità. Per disegnare ho utilizzato le librerie X11 in modalità raw, quindi senza l'aiuto della GPU.

I define del sorgente permettono di cambiare la larghezza e altezza in pixel della finestra video e la risoluzione con la quale viene calcolato il frattale (valori possibili sono 1,2,4,8 o 16, solo potenze del 2). Di default ho impostato la finestra a 512x480 anche se sarebbe meglio inserire solo potenze del 2 (tipo 512x256 o 512x512) per rendere più veloce l'esecuzione.

Codice sorgente: mandelbrot

Per compilare il programma basta dare il comando

$ gcc -o mandelbrot -L/usr/X11R6/lib -lX11

e lanciare il programma con

$ ./mandelbrot

Alcuni screenshot presi durante l'esecuzione del programma:

shot1

shot2

shot3

shot5

shot4