Assonometria cavaliera

modifica

La tartaruga si muove nel piano, ma possiamo far disegnare delle figure solide utilizzando un'assonometria. Nell'assonometria cavaliera la faccia del solido che si ha di fronte viene disegnata in dimensioni reali, gli spigoli che si allontanano vengono dimezzati e ruotati di 45 gradi.

Le 6 facce di un cubo verranno disegnate dunque come 2 quadrati e 4 parallelogrammi.

Conviene predisporre due procedure che disegnino queste forme di base:

to quadrato :lato
  repeat 4 [fd :lato rt 90]
end

to parall :lato1 :angolo :lato2
  repeat 2 [fd :lato1 rt angolo
            fd :lato2 rt 180-:angolo]
end

Per disegnare un cubo, ora, basta incominciare con la faccia che abbiamo di fronte (un quadrato), poi disegnare le 4 facce laterali e infine la faccia posteriore... Possiamo osservare che quest'ultima faccia non è necessario che venga disegnata, perché è si ottiene come conseguenza delle facce precedenti:

to cubo :spigolo
  quadrato :spigolo
  parall :spigolo 45 :spigolo/2
  rt 45
  parall :spigolo/2 45 :spigolo
  lt 45 fd :spigolo rt 45
  parall :spigolo/2 45 :spigolo
  rt 45 fd :spigolo lt 45
  parall :spigolo/2 135 :spigolo
  lt 45 bk :spigolo rt 90 bk :spigolo lt 90
end

Anche la faccia di fronte non occorre che venga disegnata esplicitamente, quindi si può semplificare la procedura cubo. Tutto il programma diventa:

to parall :lato1 :angolo :lato2
  repeat 2 [fd :lato1 rt angolo
            fd :lato2 rt 180-:angolo]
end

to cubo :spigolo
  parall :spigolo 45 :spigolo/2
  rt 45
  parall :spigolo/2 45 :spigolo
  lt 45 fd :spigolo rt 45
  parall :spigolo/2 45 :spigolo
  rt 45 fd :spigolo lt 45
  parall :spigolo/2 135 :spigolo
  lt 45 bk :spigolo rt 90 bk :spigolo lt 90
end

clearscreen
cubo 109

Ma possiamo utilizzare un trucco per far apparire le linee coperte dalle facce con un colore meno intenso: basta disegnare i primi due parallelogrammi con un colore più scuro e tutto il resto con il colore più chiaro.

to cubo :spigolo
  setpencolor 1
  parall :spigolo 45 :spigolo/2
  rt 45
  parall :spigolo/2 45 :spigolo
  setpencolor 15
  lt 45 fd :spigolo rt 45
  parall :spigolo/2 45 :spigolo
  rt 45 fd :spigolo lt 45
  parall :spigolo/2 135 :spigolo
  lt 45 bk :spigolo rt 90 bk :spigolo lt 90
end

Parallelepipedo

modifica

Se invece di un cubo vogliamo far disegnare un parallelepipedo dobbiamo fornire alla procedura 3 informazioni: la larghezza l'altezza e la profondità e utilizzarle al momento opportuno. Dopo qualche tentativo si ottiene:

to parallelepipedo :larg :alt :prof
  setpencolor 1
  parall :alt 45 :prof/2
  rt 45
  parall :prof/2 45 :larg
  setpencolor 15
  lt 45 fd :alt rt 45
  parall :prof/2 45 :larg
  rt 45 fd :larg lt 45
  parall :prof/2 135 :alt
  lt 45 bk :alt rt 90 bk :larg lt 90
end

A questo punto ricordandoci che un cubo è un particolare parallelepipedo possiamo riscrivere la procedura cubo:

to cubo :spigolo
  parallelepipedo :spigolo :spigolo :spigolo
end

Ora che ci siamo costruiti i blocchetti di base possiamo usarli per realizzare delle costruzioni. Possiamo impilare cubi o parallelepipedi uno sopra l'altro magari facendo in modo che quello sopra sia più piccolo di quello sottostante. Possiamo posizionarli in modo che abbiano uno spigolo allineato o che le facce anteriori siano sullo stesso piano e centrate o che ogni nuovo blocchetto sia posizionato al centro della faccia su cui poggia...

Buon divertimento!