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
DIM   =0.3*HEIGHT         # Base, altezza  
DIAG  =math.sqrt(2)*DIM   # Diagonale base
TETTO =DIAG/2             # Diagonale tetto (la metà...)

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


turtle.forward(DIM)
turtle.left(90)
turtle.forward(DIM)
turtle.left(45)
turtle.forward(TETTO)
turtle.left(90)
turtle.forward(TETTO)
turtle.left(45)
turtle.forward(DIM)
turtle.left(135)
turtle.forward(DIAG)
turtle.left(135)
turtle.forward(DIM)
turtle.left(135)
turtle.forward(DIAG)

Soluzione 2

Osserva

  1. Per avere più spazio si posiziona in basso a sinistra
  2. Utilizza un colore diverso per ogni passo
  3. Per semplificare ci sono tre liste per i colori, i passi e gli angoli
import math
import turtle

WIDTH =500
HEIGHT=500
DIM   =0.4*HEIGHT
DIAG  =math.sqrt(2)*DIM
TETTO =DIAG/2

COLORI = ['#330000','#550000','#770000','#990000','#BB0000','#CC0000','#DD0000','#EE0000']
PASSI  = [      DIM,      DIM,    TETTO,    TETTO,      DIM,     DIAG,      DIM,     DIAG]
ANGOLI = [       90,       45,       90,       45,      135,      135,      135,        0]

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(-DIM, -DIM)
turtle.setheading(0)
turtle.pendown()

for colore, passo, angolo in zip(COLORI, PASSI, ANGOLI):
    turtle.pencolor(colore)
    turtle.forward(passo)
    turtle.left(angolo)

Soluzione 3

...
PASSI  = [DIM, DIM, DIM, DIM, DIAG, TETTO, TETTO, DIAG]
ANGOLI = [ 90,  90,  90, 135,   90,    90,    90,    0]
...

Casa (60°)

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

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

Lascia un commento