1.  Utilizziamo le trasformazioni affini per realizzare immagini di frattali
     
(Barnsley, 1986-88).  

 

Ricordate che:

 

I.  la trasformazione     è prodotto delle due omologie     e   ,  che cambiano le scale sugli assi;

 

 

 

II.  La matrice  della rotazione di un angolo a (in radianti), in senso antiorario, intorno a (0,0), è data da:

 

                                                                                          

 

 

III.   Con      indichiamo la traslazione di componenti  xt, yt.

 

2.   Sulla base di quanto precede, interpretate e elaborate il seguente programma esempio:

 

 SCREEN 12
 WINDOW (-10, -10)-(10, 10)
 RANDOMIZE TIMER
 pi = 3.141592654#
 x = 0: y = 0
ripeti:
dir = INT(RND * 3)
IF dir = 0 THEN trasf x, y, .5, .5, 0, 0, 5
IF dir = 1 THEN trasf x, y, .5, .5, 45, -5, -5
IF dir = 2 THEN trasf x, y, .5, .5, -45, 5, -5
IF INKEY$ = "" THEN GOTO ripeti
END
                                                        
 
SUB trasf (x, y, h, k, a, xt, yt)
SHARED pi
a = a * pi / 180    'da gradi in radianti
xs = x * h * COS(a) - y * k * SIN(a) + xt
ys = x * h * SIN(a) + y * k * COS(a) + yt
x = xs: y = ys
PSET (x, y)
END SUB
 

3.  Provate anche con i seguenti parametri:

I..

ripeti:
dir = INT(RND * 3)
IF dir = 0 THEN trasf x, y, .5, .5, 0, 0, 2.5
IF dir = 1 THEN trasf x, y, .5, .5, 0, -2.5, -2.5
IF dir = 2 THEN trasf x, y, .5, .5, 0, 2.5, -2.5
IF INKEY$ = "" THEN GOTO ripeti
II.
ripeti:
dir = INT(RND * 4)
IF dir = 0 THEN trasf x, y, .6, .6, 0, 0, -5
IF dir = 1 THEN trasf x, y, .6, .6, 0, 0, 5
IF dir = 2 THEN trasf x, y, .5, .5, 45, -5, -2.5
IF dir = 3 THEN trasf x, y, .5, .5, -45, 5, -2.5
IF INKEY$ = "" THEN GOTO ripeti
III.
ripeti:
dir = INT(RND * 3)
IF dir = 0 THEN trasf x, y, .5, .5, 0, -5, 5
IF dir = 1 THEN trasf x, y, .5, .5, 0, 5, 5
IF dir = 2 THEN trasf x, y, .5, .5, 0, 5, -5
IF INKEY$ = "" THEN GOTO ripeti
 
 
 
 
4.  Cambiate ancora i parametri! Trovate qualche bella immagine!!
 

 

 

5.  La dimensione di un frattale non è un numero intero!