Un software freeware per la generazione di frattali in ambiente Windows



Fracty è un software freeware il cui sviluppo inizia a fine 2010, da parte del suo autore Marco Conte. Le motivazioni che spingono l'autore alla creazione di Fracty riguardano l'assenza di software analoghi a questo per potenzialità e al tempo stesso facilità di utilizzo, caratteristiche che rendono Fracty forse il più semplice e completo generatore di frattali gratuito.

Attualmente la versione rilasciata è la 1.1, seconda versione del software che aggiunge alle potenzialità del primo la possibilità di generare frattali di tipo Buddhabrot e Anti-Buddhabrot, ed inoltre il meno famoso Tricorn.


Veniamo alle specifiche del software.

Uno degli aspetti fondamentali che differenziano un buon generatore di frattali da un altro di livello inferiore è sicuramente la velocità di calcolo, e quindi il tempo impiegato per la generazione del frattale stesso. Escludendo a priori, e per ovvie motivazioni, le specifiche capacità del calcolatore su cui il programma viene eseguito, confrontando Fracty con diversi altri generatori si nota come alcuni offrano tempi di calcolo lievamente inferiori accompagnati però da immagini di qualità mediocre, e come altri invece propongano immagini di buona qualità ma tempi di calcolo eccessivi. In definitiva Fracty è un ottima via di mezzo che permette di creare in tempi ragionevoli immagini di buona qualità e assolutamente soddisfacenti per tutti coloro interessati al mondo dei frattali. Senza dimenticare ovviamente la facilità di utilizzo dell'interfaccia grafica, una delle caratteristiche di punta del software. Inoltre con Fracty è possibile zoomare l'area del frattale semplicimente selezionandola con il mouse.

Fracty è sviluppato essenzialmente in due diversi linguaggi di programmazione: in C è stata sviluppata la parte relativa alla generazione del frattale, garantendo cosi la massima efficienza; in Visual C++ facendo utilizzo delle Microsoft Foundation Classes (MFC) invece è stata sviluppata la parte grafica relativa all'interfaccia.



Frattali


Il primo insieme che è possibile realizzare con Fracty è anche l'insieme più famoso ovvero l'insieme di Mandelbrot.

I parametri associati a questo insieme e modificabili dall'utente sono:

1) Il numero di iterazioni che devono essere eseguite prima di determinare il colore che assumerà il punto dell'immagine (per ogni pixel), dove il numero di iterazioni massime determina la precisione da adottare per la rappresentazione dell'insieme e per ottenere migliori risultati.

2) L'esponente relativo alla successione che definisce l'insieme dei numeri complessi dell'insieme di Mandelbrot. Di default l'esponente è 2, esponente che permette di ricreare esattamente l'insieme di Mandelbrot, tuttavia Fracty dà la possibilità di modificarlo, dando vita cosi ad immagini davvero suggestive.






3) Ascisse e Ordinate iniziali e finali relative all'area dell'insieme. E proprio grazie alla possibilità di modificare queste variabili che Fracty permette lo zoom dell'insieme.

4) Dimensioni dell'immagine in pixel, si definisce il numero di pixel che dovrà avere l'immagine da originare.

5) Profondità dell'insieme. Caratteristica particolare che permette di zoomare seguendo l'ascissa z e quindi esporare in profondità l'insieme.

6) Insieme di Tricorn. Tramite un segno di spunta è possibile sfruttare gli stessi parametri dell'insieme di Mandelbrot per generare l'analogo insieme di Mandelbar.








Il secondo insieme che è possibile realizzare con Fracty è un altro dei frattali più conosciuti: l'insieme di Julia.

In realtà gli insiemi di Julia sono infiniti, e non sarà difficile rendersene conto modificando quello che è l'ulteriore parametro relativo a quest'insieme, da aggiungersi ai parametri precedenti relativi all'insieme di Mandelbrot, (il parametro C).

Questo parametro, che nell'insieme di Mandelbrot era una costante, è ora invece una variabile definita in tempo di elaborazione del frattale, che cambia punto per punto. Questo permette di ricreare diversi e singolari insiemi di Julia, ricordandosi in particolare che gli insiemi di Julia più affascinanti si trovano sul "bordo" dell'insieme di Mandelbrot.








Il terzo insieme è un insieme unico. Unico nel vero senso della parola, non potrete generarlo tramite qualsiasi altro software perchè è stato solo recentemente inventato (2010) da Augusto Conte. E' l'insieme Distance.

La sua particolarità risiede nel fatto che, basandosi in prima approssimazione sull'insieme di Mandelbrot, l'insieme Distance permette di "controllare" la traiettoria che ogni punto dell'insieme di Mandelbrot segue prima di posizionarsi effettivamente nel luogo prestabilito dalla definizione del'insieme stesso.

E poichè ad ogni punto corrisponde un colore diverso a seconda del numero massimo di iterazioni, il numero massimo di iterazioni corrisponde proprio al numero massimo di "passi" che un punto può compiere prima di posizionarsi sull'insieme o divergere.







La forza di tutto ciò è proprio il riscontro visuale, e non tramite documento di testo; è possibile verificare sperimentalmente una approssimazione del cammino dei punti non divergenti dell'insieme di Mandelbrot grazie alla generazione dell'insieme Distance.

I parametri impostabili per l'insieme Distance corrispondono a quelli dell'insieme di Mandelbrot, ma in più si aggiunge il parametro distance che determina l'area che circoscrive la traiettoria del punto, quindi in prima approssimazione aumentando questo parametro si avra uno "spessore" di contorno maggiore.












Si giunge quindi alla generazione degli insiemi di Buddhabrot e Anti-Buddhabrot. Ideato da Melinda Green l'insieme di Buddhabrot sembra raffigurare (se ruotato di 90 gradi in senso orario) il Gautama Buddha.

A differenza del Buddhabrot la tecnica di rendering applicata all'Anti-Buddhabrot consiste nel disegnare i percorsi dei punti C che si trovano nel Insieme di Mandelbrot, e che quindi non divergono.

I parametri impostabili per questi due insiemi equivalgono a quelli impostabili per l'insieme di Mandelbrot.



Buddhabrot                                                                               Anti-buddhabrot





Caratteristiche dell'applicazione



Le immagini generate da Fracty sono bitmap da 8 bit per pixel (BitCount) con tavolozza (palette) che contene 256 componenti cromatiche (RGB) definite nei file palette (.pal) disposti nell'apposita directory del file scaricabilie.

La possibilità di poter disporre di "soli" 256 colori differenti potrebbe essere considerata una debolezza, in realtà 256 colori sono più sufficienti per raffigurare dettagliatamente anche i contorni dell'insieme dopo più livelli di ingrandimento. Ma la vera forza di Fracty è quella di poter utilizzare i propri file .pal e selezionarli, tramite un apposita sezione dell'applicazione, per la generazione del proprio frattale. La difficoltà che caratterizza la creazione di un proprio tavolozza è paragonabile a quella della scrittura di un testo utilizzando un qualunque editor (per averne esempio si vedano i file .pal nella cartella Palette). In ogni caso Fracty dispone già di tavolozza proprie selezionabili direttamente dal programma.


Fracty non si ferma qui. Le immagini generate sono salvabili su disco fisso (memoria di massa) in modo tale da non perdere i propri frattali; non solo, sarà possibile riprendere la generazione del frattale da dove si era lasciata l'ultima volta grazie ad un'altra importante caratteristica di Fracty: la creazione in contemporanea di files di configurazione formato INI.

I files .ini generati al salvataggio dell'immagine contengono al loro interno tutte le informazioni relative al frattale stesso (tipo di frattale, iterazioni, coordinate, etc..), sarà possibile quindi utilizzarli caricare le informazioni in memoria e generare il frattale a partire da queste. Da ciò deriva la possibilità di non dover essere necessariamente in possesso dell'immagine per poterla generare, cosa che può risultare particolarmente utile se un altro utente che utilizza Fracty desidera inviarci le informazioni del frattale che lui stesso ha generato, invece di spedirci l'immagine stessa basterebbe inviarci il file INI, notevolmente più "leggero" e riutilizzabile di un file bitmap.


Altra caratteristica particolarmente importante, ma sopratttutto particolarmente piacevole agli occhi dell'utente, è la possibilità di visualizzare l'immagine sia adattandola alla finestra dell'applicazione (che in particolare è ridimensionabile a piacere), sia in dimensioni effettive, permettendo cosi di visualizzare in maggior dettaglio ogni singola caratteristica del frattale generato.






Altro



Tutte le immagini del sito sono state realizzate con Fracty - The Fractal Generator.