LISTATO DEL PROGRAMMA IN LINGUAGGIO DI PROGETTO DEL SETACCIO DI APOLLONIO CON IL METODO IFS

setaccio di Apollonio

Le trasformazioni presenti nel programma si trovano su Il setaccio di Apollonio.
Dopo aver scelto un punto di partenza si inizia il ciclo: viene estratto un numero casuale che ci permette di impostare la trasformazione a seconda del suo valore.

 INIZIA
 Parti da un punto iniziale, ad esempio dal punto (x=1; y=2) 
  raggio = √3
  a1 = -1 / 2
  b1 = raggio / 2
  a2 = -1 / 2
  b2 = -raggio / 2
  Ripeti per 50000 volte:
    x0 = 3 * (1 + raggio - x) / ((1 + raggio - x) ^ 2 + y ^ 2) + (1 - raggio)
    y0 = 3 * y / ((1 + raggio - x) ^ 2 + y ^ 2)
    Estrai un numero a caso (di nome T) minore di 3 
    

 

a1 = cos120°; b1 = sen120°
a2 = cos240°; b2 = sen240°
x0 e y0 sono variabili d'appoggio che servono per tutte e tre le trasformazioni.

 Se T <= 1 allora
            x1 = x0
            y1 = y0
            Scegli il colore rosso
    

Prima trasformazione, applicata con probabiltà di un terzo.


   Altrimenti
     D = x0 ^ 2 + y0 ^ 2
     Tx = x0 / D
     Ty = -y0 / D

Sia per la seconda che per la terza trasformazione innanzitutto si applica l'inversione circolare rispetto al cerchio di centro l'origine e raggio unitario composta con il coniugio


   Se 1 < T <= 2 allora
          x1 = Tx * a1 - Ty * b1
          y1 = Tx * b1 + Ty * a1
          Scegli il colore verde

Seconda trasformazione, applicata con probabilità di 1/3
Rotazione di 120° con centro nell'origine del punto (Tx,Ty)


       Altrimenti
           x1 = Tx * a2 - Ty * b2
           y1 = Tx * b2 + Ty * a2
          Scegli il colore azzurro
   Fine se
Fine se

Terza trasformazione, applicata con probabilità di 1/3
Rotazione di 240° con centro nell'origine del punto (Tx,Ty)


x = x1
y = y1

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 rispettivante ad x ed a y x1 ed y1.


   Se hai già fatto 100 ripetizioni allora
   Disegna sullo schermo il punto moltiplicando le sue coordinate per 45 e con il colore scelto
  Fine ciclo
FINE

Indietro