CURVA DI CESARO CON IL METODO DI BARNSLEY

Ecco il frattale di Cesāro costruito con il metodo di Barnsley.

Nel caso del frattale di Cesaro la contrazione non č fissa, ma dipende dall'angolo α: pertanto porremo:
  1. contrazione k = 1/[2(1+cosα)]

Si predispone un'urna con quattro palline, una rossa, una verde, una blu ed una gialla; ogni pallina contiene le istruzioni per una trasformazione.

Pallina rossa Contrazione di k
Pallina gialla Contrazione di k;
rotazione di α in verso antiorario;
traslazione orizzontale di k. (misura di AB)
Pallina verde Contrazione di k;
rotazione di α in verso orario (equivalente ad una rotazione in verso antiorario di -α);
traslazione orizzontale di 1/2 (misura di AH) e verticale di k * senα (misura di CH).
Pallina blu Contrazione di k;
traslazione orizzontale di k + 2kcosα (misura di AD).

 


 Segue la matrice delle trasformazioni che ne permettono la costruzione e che č riportata nella seguente tabella:

 

a

b

c

d

e

f

p

Estrazione

I

k

0.00

0.00

0.00

k

0.00

0.25

Pallina rossa

II

kcosα

- ksenα

k

ksenα

kcosα

0

0.25

Pallina gialla

III

kcosα

ksenα

0.5

-ksenα

kcosα

ksenα

0.25

Pallina verde

IV

k

0

0

0

k

k + 2kcosα

0.25

Pallina blu

E' questo un metodo compatto per scrivere le equazioni delle trasformazioni lineari, cioč quelle in cui le variabili sono tutte al primo grado; invece che scrivere:

(x'= ax + by + c) AND (y'= dx + ey + f)

si dispongono in una stessa riga i coefficienti che fanno parte della stessa trasformazione, mentre l'ultima colonna rappresenta la probabilitā con cui applicare la trasformazione.

Ad esempio, riferendoci alla III trasformazione, che si applica con probabilitā del 25%, possiamo scrivere:

(x'= kxcosα + kysenα + 0.5) AND (y'= -kxsenα + kycosα+ksenα )

Non dimentichiamo che il nostro č un sistema di funzioni iterate, e dunque il risultato di ogni trasformazione deve diventare il numero in entrata per la prossima trasformazione, si tratta quindi di assegnare rispettivamente ad x ed a y x' ed y'.

Ecco il listato del programma in linguaggio di progetto:

INIZIA
 
Leggi l'angolo a
k = 1 / (2 * (1 + cosa))
 x=1
 y=1
a deve essere in radianti;
k č il rapporto di contrazione;

x ed y sono rispettivamente l'ascissa e l'ordinata del punto di partenza.
 
Ripeti per 20000 volte: 
    Estrai un numero a caso (di nome T) minore di 100 
Si inizia il ciclo: viene estratto un numero casuale che ci permette di impostare la trasformazione a seconda del suo valore
 Se T < 25 allora
            x1 = k * x
            y1 = k * y
          
Ecco la prima trasformazione, applicata con probabilitā del 25%
 Altrimenti se T < 50 allora
             x1 = k * cosa * x - k * sena * y + k
             y1 = k * sena  * x + k * cosa * y
Ecco la seconda trasformazione, applicata con probabilitā del 25%
 Altrimenti se T < 75 allora 
                     x1 = k * cosa * x + k * sena * y + 1/2
                     y1 = - k * sena * x + k * cosa  * y + k * sena
Ecco la terza trasformazione, applicata con probabilitā del 25%
  Altrimenti  
                  x1 = k * x + k * (1 + 2 * cosa )
                  y1 = k * y
Ecco la quarta trasformazione, applicata con probabilitā del 25%
Fine se.
Se hai giā fatto 20 ripetizioni allora
   Disegna sullo schermo il punto moltiplicando la sua ascissa per la larghezza e la sua ordinata per l'altezza dello schermo grafico.
x = x1
y = y1
Le coordinate del punto trasformato sostituiscono i valori iniziali e ad esse si applica la prossima trasformazione.
Fine ciclo

FINE

 




Introduzione
Definizione

Realizzazione

Tipi di frattali
Caratteristiche
Cesaro IFS
Cesaro g
Cesaro lS
Altri IFS
Indice
Home
Contatti

Š2010 www.webfract.it