Salta ai contenuti
Manuale LogoManuale Logo

Grafica con Turtle

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.

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.

import turtle
t = turtle.Turtle() # Crea la tartaruga
t.forward(100) # Avanza di 100 pixel
t.right(90) # Gira a destra di 90°
t.forward(100) # Avanza ancora
turtle.done() # Mantieni la finestra aperta
import turtle
t = 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 centro
t.home() # Torna all'origine (0, 0) e guarda a destra
t.penup() # Alza la penna: la tartaruga si muove senza disegnare
t.pendown() # Abbassa la penna: torna a disegnare

Servono per spostarsi in un altro punto senza lasciare tracce.

t.pensize(3) # Spessore della linea (in pixel)
t.pencolor("red") # Colore della linea
t.fillcolor("yellow") # Colore di riempimento (usato con begin_fill / end_fill)
t.speed(5) # Velocità: 1=lenta, 10=veloce, 0=massima (instantanea)
import turtle
t = 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()
import turtle
t = 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()
import turtle
t = turtle.Turtle()
t.circle(50) # Disegna un cerchio con raggio 50 pixel
turtle.done()
import turtle
t = 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()
import turtle
t = turtle.Turtle()
t.fillcolor("blue") # Scegli il colore di riempimento
t.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 chiusa
turtle.done()
import turtle
schermo = turtle.Screen()
schermo.title("Il mio disegno") # Titolo della finestra
schermo.bgcolor("black") # Colore dello sfondo
schermo.setup(width=800, height=600) # Dimensioni in pixel
t = turtle.Turtle()
t.pencolor("white") # Disegna in bianco su sfondo nero
t.forward(200)
turtle.done()

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.