Casa 45° – 60°

Osserva la figura

  • Si parte dall’angolo in basso a sinistra con direzione Est
  • L’angolo del tetto rispetto alla sua base è 45°

Soluzione 1

import math
import turtle

WIDTH  = 500
HEIGHT = 500
LATO   = 0.3*HEIGHT         # Base, altezza
DIAG   = math.sqrt(2)*LATO  # Diagonale
DIAG2  = DIAG/2             # Tetto

turtle.setup(WIDTH, HEIGHT)
turtle.title("Un solo tratto")
turtle.shape('turtle')
turtle.pencolor('red')
turtle.bgcolor('pink')
turtle.pensize(4)

turtle.forward(LATO)
turtle.left(90)
turtle.forward(LATO)
turtle.left(45)
turtle.forward(DIAG2)
turtle.left(90)
turtle.forward(DIAG2)
turtle.left(45)
turtle.forward(LATO)
turtle.left(135)
turtle.forward(DIAG)
turtle.left(135)
turtle.forward(LATO)
turtle.left(135)
turtle.forward(DIAG)

Soluzione 2

Miglioramenti

  1. Per avere più spazio, la tartaruga si posiziona inizialmente in basso a sinistra
  2. Per distinguere la sequenza dei passi si utilizzano colori diversi
  3. Per semplificare il codice si preparano tre liste con i valori successivi delle variabili angolo, colore e passo
import math
import turtle

WIDTH  = 500
HEIGHT = 500
LATO   = 0.4*HEIGHT
DIAG   = math.sqrt(2)*LATO
DIAG2  = DIAG/2
COLORI = [ '#300', '#500', '#700', '#900', '#B00', '#C00', '#D00', '#E00' ]
ANGOLI = [      0,     90,     45,     90,     45,    135,    135,    135 ]
PASSI  = [   LATO,   LATO,  DIAG2,  DIAG2,   LATO,   DIAG,   LATO,   DIAG ]

turtle.setup(WIDTH, HEIGHT)
turtle.title("Un solo tratto")
turtle.shape('turtle')
turtle.pencolor('red')
turtle.bgcolor('pink')
turtle.pensize(4)

turtle.penup()
turtle.setposition(-LATO, -LATO)
turtle.setheading(0)
turtle.pendown()

for angolo, colore, passo in zip(ANGOLI, COLORI, PASSI):
    print(angolo,"\t",colore,"\t",passo) # Facoltativo: per "vedere" cosa succede...
    turtle.left(angolo)                  # Angolo relativo
    turtle.pencolor(colore)              # Colore del passo
    turtle.forward(passo)                # Distanza del passo

Soluzione 3

Una soluzione alternativa

...
ANGOLI = [0, 90, 90, 90, 135, 90, 90, 90]
PASSI = [LATO,LATO,LATO,LATO,DIAG,DIAG2,DIAG2,DIAG]
...

Casa (60°)

Con la stessa tecnica della casa (45°) ma con il tetto più inclinato: 60°

...
ANGOLI = [0, 90, 30, 120, 30, 135, 135, 135]
PASSI = [LATO,LATO,LATO,LATO,LATO,DIAG,LATO,DIAG]
...

Continua…

  • Utilizza un colore diverso per il pavimento, le pareti, i tetti, le linee interne.
  • Aggiungi una lista per lo spessore della penna: le pareti e il tetto più spessi, le linee interne più sottili.
  • Disegna una seconda casa a destra della prima.

Lascia un commento