LOGO/Assonometria
Wikibooks, manuali e libri di testo liberi.
Indice |
[modifica] Assonometria cavaliera
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.
[modifica] Cubo
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
[modifica] Parallelepipedo
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
[modifica] Torri
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!