Grafica con Turtle
Perché usare Turtle per imparare
Sezione intitolata “Perché usare Turtle per imparare”Turtle mostra il risultato del codice in forma visiva. Invece di stampare numeri nel terminale, puoi disegnare figure sullo schermo.
È utile anche per esercitarsi con cicli e geometria.
Cos’è Turtle?
Sezione intitolata “Cos’è Turtle?”Turtle è una libreria inclusa in Python. Controlli una “tartaruga” virtuale sullo schermo; quando si muove con la penna abbassata, lascia una traccia.
L’idea deriva dal linguaggio Logo degli anni ’60, usato per insegnare la programmazione ai bambini.
Il primo programma
Sezione intitolata “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
Sezione intitolata “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
Sezione intitolata “Alzare e abbassare la penna”t.penup() # Alza la penna: la tartaruga si muove senza disegnaret.pendown() # Abbassa la penna: torna a disegnareServono per spostarsi in un altro punto senza lasciare tracce.
Personalizzare il disegno
Sezione intitolata “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
Sezione intitolata “Disegnare figure geometriche”Quadrato
Sezione intitolata “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
Sezione intitolata “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
Sezione intitolata “Cerchio”import turtlet = turtle.Turtle()
t.circle(50) # Disegna un cerchio con raggio 50 pixel
turtle.done()Stella a 5 punte
Sezione intitolata “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
Sezione intitolata “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
Sezione intitolata “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
Sezione intitolata “Esempio: spirale arcobaleno”Questo esempio combina un ciclo, colori e geometria:
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()Modifica l’angolo (91°) o il numero di passi (100) per cambiare il disegno.