Grafica con Turtle
Perché ti serve questo?
Section titled “Perché ti serve questo?”Turtle è il modo più semplice e divertente per vedere i risultati del tuo codice in modo visivo. Invece di stampare numeri sul terminale, disegni figure sullo schermo — e puoi vedere ogni riga del tuo programma “prendere vita”.
È anche un ottimo strumento per capire come funzionano i cicli e la geometria.
Cos’è Turtle?
Section titled “Cos’è Turtle?”Turtle è una libreria già inclusa in Python — non devi installare nulla. Ti permette di controllare una “tartaruga” virtuale su uno schermo. La tartaruga ha una penna sotto il guscio: quando si muove, lascia una traccia. Tu dai i comandi e la tartaruga disegna.
L’idea viene dal linguaggio Logo degli anni ‘60, usato proprio per insegnare la programmazione ai bambini.
Il primo programma
Section titled “Il primo programma”import turtle
t = turtle.Turtle() # Crea la tartaruga
t.forward(100) # Avanza di 100 pixelt.right(90) # Gira a destra di 90°t.forward(100) # Avanza ancora
turtle.done() # Mantieni la finestra apertaComandi di movimento
Section titled “Comandi di movimento”import turtlet = turtle.Turtle()
t.forward(100) # Avanza di 100 pixel (abbreviazione: t.fd(100))t.backward(50) # Arretra di 50 pixel (abbreviazione: t.bk(50))t.right(90) # Gira a destra di 90° (abbreviazione: t.rt(90))t.left(90) # Gira a sinistra di 90° (abbreviazione: t.lt(90))t.goto(100, 50) # Vai alle coordinate (x, y) — l'origine è al centrot.home() # Torna all'origine (0, 0) e guarda a destraAlzare e abbassare la penna
Section titled “Alzare e abbassare la penna”t.penup() # Alza la penna: la tartaruga si muove senza disegnaret.pendown() # Abbassa la penna: torna a disegnareUtile per “saltare” in un altro punto senza lasciare tracce.
Personalizzare il disegno
Section titled “Personalizzare il disegno”t.pensize(3) # Spessore della linea (in pixel)t.pencolor("red") # Colore della lineat.fillcolor("yellow") # Colore di riempimento (usato con begin_fill / end_fill)t.speed(5) # Velocità: 1=lenta, 10=veloce, 0=massima (instantanea)Disegnare figure geometriche
Section titled “Disegnare figure geometriche”Quadrato
Section titled “Quadrato”import turtlet = turtle.Turtle()
# Un quadrato ha 4 lati uguali e 4 angoli di 90°for _ in range(4): t.forward(100) # Disegna un lato t.right(90) # Gira di 90°
turtle.done()Triangolo equilatero
Section titled “Triangolo equilatero”import turtlet = turtle.Turtle()
# Un triangolo equilatero ha 3 lati e angoli esterni di 120°for _ in range(3): t.forward(100) t.left(120)
turtle.done()Cerchio
Section titled “Cerchio”import turtlet = turtle.Turtle()
t.circle(50) # Disegna un cerchio con raggio 50 pixel
turtle.done()Stella a 5 punte
Section titled “Stella a 5 punte”import turtlet = turtle.Turtle()t.speed(0)
# Per una stella a 5 punte l'angolo esterno è 144°for _ in range(5): t.forward(100) t.right(144)
turtle.done()Riempire una figura con il colore
Section titled “Riempire una figura con il colore”import turtlet = turtle.Turtle()
t.fillcolor("blue") # Scegli il colore di riempimentot.begin_fill() # Da qui inizia il riempimento
for _ in range(4): # Disegna il quadrato t.forward(100) t.right(90)
t.end_fill() # Riempi la figura chiusaturtle.done()Personalizzare la finestra
Section titled “Personalizzare la finestra”import turtle
schermo = turtle.Screen()schermo.title("Il mio disegno") # Titolo della finestraschermo.bgcolor("black") # Colore dello sfondoschermo.setup(width=800, height=600) # Dimensioni in pixel
t = turtle.Turtle()t.pencolor("white") # Disegna in bianco su sfondo nerot.forward(200)
turtle.done()Esempio: spirale arcobaleno
Section titled “Esempio: spirale arcobaleno”Combina un ciclo, colori e geometria per creare qualcosa di bello:
import turtle
t = turtle.Turtle()t.speed(0) # Velocità massima
colori = ["red", "orange", "yellow", "green", "blue", "purple"]
for i in range(100): t.pencolor(colori[i % len(colori)]) # Cambia colore ciclicamente t.forward(i * 2) # Ogni volta avanza un po' di più t.right(91) # 91° invece di 90° crea la spirale
turtle.done()Prova a modificare l’angolo (91°) o il numero di passi (100) per ottenere effetti diversi.