Spirali

Con poche righe di codice si apre un mondo di immagini sorprendenti!

Versione 1

Per disegnare una spirale

  • Avanza di una certa distanza, disegnando un certo tratto
  • Cambia direzione, in senso antiorario
  • Cambia la lunghezza del tratto
  • Ripeti i 3 passi precedenti finché la distanza dal centro si mantiene al di sotto di una certa soglia
import turtle

DISTANZA = 5                      # La variabile per la lunghezza del passo

while(turtle.distance(0,0) < 400): # Non superare una certa distanza dal centro!
    turtle.forward(DISTANZA)       # Avanza (e scrivi...)
    turtle.left(45)                # Cambia direzione
    DISTANZA += 2                  # Aumenta la lunghezza del passo

Il risultato dell’esecuzione del codice si presta a diverse critiche

  1. La finestra è troppo grande rispetto al risultato
  2. Lo sfondo (bianco) e il tratto (nero e sottile) non valorizzano il risultato
  3. La freccia che rappresenta la matita è anonima
  4. L’esecuzione è piuttosto lenta
  5. Ci sono dei numeri magici (400, 45, 2, …) sparsi all’interno del codice

Versione 2

Il codice si complica ma diventa più facile realizzare figure originali

  • La 1° parte del codice contiene un elenco di parametri (NOME = valore) che determinano il risultato finale
  • La 2° imposta l’ambiente di esecuzione tenendo conto anche dei parametri precedenti
  • La 3° contiene il codice effettivo
import turtle

# ------------------------------ PARAMETRI

WIDTH          = 500           # Larghezza finestra grafica
HEIGHT         = 500           # Altezza finestra grafica
DELTA_ANGOLO   = 45            # CAMBIO DIREZIONE
DISTANZA       = 5             # Tratto iniziale 
DELTA_DISTANZA = 2             # AUMENTO LUNGHEZZA TRATTO
MAX_DISTANZA   = 0.45*HEIGHT   # Limite per la distanza dal centro
PENSIZE        = 2             # SPESSORE TRATTO

TITOLO         =   "DELTA_ANG   = " + str(DELTA_ANGOLO)   \
                 + " DELTA_LUNG = " + str(DELTA_LUNGHEZZA) \
                 + " PENSIZE    = " + str(PENSIZE)        \

# ------------------------------ IMPOSTAZIONI

turtle.setup(WIDTH, HEIGHT)    # Dimensione finestra grafica
turtle.title(TITOLO)           # Testo barra del titolo
turtle.shape("turtle")         # Immagine della tartaruga
turtle.pencolor("red")         # Colore tratto
turtle.bgcolor("pink")         # Colore sfondo
turtle.pensize(PENSIZE)        # Spessore tratto
turtle.speed(0)                # Massima velocità

# ------------------------------ ESECUZIONE

while(turtle.distance(0,0) < MAX_DISTANZA):
    turtle.forward(DISTANZA)
    turtle.left(DELTA_ANGOLO)

    DISTANZA += DELTA_DISTANZA

Esperimenti

Prova a cambiare uno o due parametri (DELTA_ANG, DELT_DIST) per ottenere immagini originali

DELTA_ANGOLO=60

DELTA_ANGOLO=75

DELTA_ANGOLO=90

DELTA_ANGOLO=91

DELTA_ANGOLO=120 (DELTA_DISTANZA=5)

DELTA_ANGOLO=121

DELTA_ANGOLO=135

DELTA_ANGOLO=150

DELTA_ANGOLO=181

Lascia un commento