APPROFONDIMENTI DI MATEMATICA SUL FRATTALE DI CESARO

PREMESSA

Il segmento di partenza sia AE, con A(x1,y1) ed E(x2,y2).

PASSO UNO

Il segmento AE si trasforma nella spezzata ABCDE.

 

 

Siano A (x1a, y1a), B(x1b,y1b); C(x1cc,y1c); D(x1d,y1d); E(x1e,y1e)<

Il rapporto di contrazione sia q = 1/[2(1+cosα)]

Risulta

punto A x1a = x1 Il punto A resta fisso
y1a = y1

punto B x1b = q(x2 - x1) + x1a Omotetia di centro A e rapporto q
y1b = q(y2 - y1) + y1a

punto C

x1c = q(x2 - x1)cosα - q(y2 - y1)senα + x1b Trovare prima le coordinate di C1:

C1x = q(x2 - x1) + x1b
C1y = q(y2 - y1) + x1b

Rotazione di centro B di angolo +α (verso antiorario):

x' - x1b = (x - x1b)cosα - (y- y1b)senα
y' - y1b = (x - x1b)senα + (y - y1b)cosα

Sostituire ordinatamente ad x ed y le coordinate di C1

y1c = q(x2 - x1 )senα + q(y2 - y1 )cosα + y1b

punto D x1d = x1 + x2  - x1b Il punto D è il simmetrico di B rispetto al punto H, che è il punto medio di AE
y1d = y1 + y2 - y1b

punto E x1e = x2 Il punto E resta fisso
y1e = y2

 

PASSO DUE

Ripetere il procedimento su ognuno dei segmenti AB, BC, CD, DE

 ... e così via

 


CODICE PER IL FRATTALE

Introduciamo l'ampiezza in gradi dell'angolo a ed il numero di passi passo desiderato.

Trasformiamo a in radianti e calcoliamo q = 1 / (2 * (1 + cos_a))

Procedura iniziale

leggi passo   'numero di passi desiderato
leggi
a   'angolo in gradi
a = a * 3.141592 / 180  
'trasforma a in radianti
sen_a = Sin(a)  
'seno di a
cos_a = Cos(a) 
'coseno di a
q = 1 / (2 * (1 + cos_a))  
'calcola q
Chiama la procedura ricorsiva
cesaro passando ordinatamente come parametri passo, x1, y1, x2, y2  ' ad esempio 3, 50, 300, 400, 300
 

Procedura cesaro(passo, x1, y1, x2, y2)
Se passo = 0 allora
Disegna il segmento di estremi (x1,y1)-(x2,y2)
Altrimenti
x1a = x1
y1a = y1
x1b = q * (x2 - x1) + x1a
y1b = q * (y2 - y1) + y1a
x1c = x1b + q* (x2 - x1) * cos_a - q * (y2 - y1) * sen_a
y1c = y1b + q * (x2 - x1) * sen_a + q * (y2 - y1) * cos_a
x1d = x2 + x1 - x1b y1d = y2 + y1 - y1b
x1e = x2
y1e = y2
Chiama cesaro(passo - 1, x1a, y1a, x1b, y1b)
Chiama cesaro(passo - 1, x1b, y1b, x1c, y1c)
Chiama cesaro(passo - 1, x1c, y1c, x1d, y1d)
Chiama cesaro(passo - 1, x1d, y1d, x1e, y1e)
Fine se
Fine procedura

Torna al frattale di Cesaro


©2010 www.webfract.it