HomeMailUpPrecedenteSuccessivoAiuto! it en

Frattali e PostScript

Il PostScript è un vero e proprio linguaggio di programmazione per la rappresentazione di grafica e testo. Tramite il PostScript è possibile descrivere le figure in maniera procedurale. Questa possibilità è particolarmente vantaggiosa quando si vogliono creare figure con molte parti ripetute o simili. In particolare è molto adatto a generare i frattali autosimilari. La seguente figura in formato GIF occupa 17087 bytes

mentre l'originale in PostScript è il seguente:
%!PS-Adobe-2.0 EPSF-2.0
%%Title: Curva di Koch - by Emanuele Paolini
%%BoundingBox: 0 50 550 660
%%Pages: 1
%%EndComments
%%EndProlog

%%Page: 1 1
/koch {
dup 1 ge {
1 sub gsave
1 3 div dup scale dup koch
1 0 translate 60 rotate dup koch
1 0 translate -120 rotate dup koch
1 0 translate 60 rotate dup koch
grestore} {newpath 0 0 moveto 1 0 lineto stroke}
ifelse pop
} def

20 500 translate
500 500 scale
0.1 setlinewidth

%numero di iterazioni:
8            

dup koch
1 0 translate -120 rotate dup koch
1 0 translate -120 rotate dup koch
showpage

%%Trailer

Un totale di 559 bytes, commenti inclusi. Chi ha un preview per il PostScript o una stampante PostScript, può dargli in pasto il file precedente: koch.ps.

Si noti che la figura in PostScript è vettoriale, quindi la risoluzione in stampa (o in preview) è limitata solo dalla stampante (o dalla risoluzione del monitor). Di fatto questo disegno è l'ottava iterazione del frattale "fiocco di neve" e contiene esattamente 196608 segmentini lunghi ognuno 0.003 cm.

Si noti poi che il numero di iterazioni può essere specificato a piacere modificando un solo numerino nel file. Il PostScript infatti è un completo linguaggio di programmazione (in "notazione polacca inversa"). In questo caso tutti i calcoli (ricorsivi) per disegnare i frattali vengono fatti dalla stampante stessa.

Altri simpatici frattali in Postscript:

Questo invece genera una tassellazione non periodica: penrose.ps (di Maurizio Paolini).
HomeMailUpPrecedenteSuccessivoAiuto! it en
Ultima modifica: 12 07 2009