Trapezio

Trapezio

di BARTOLINI FRANCESCA -
Numero di risposte: 4

Ciao! 

Sto provando a scrivere lo script di un trapezio con "to" e "end". Sono riuscita a creare un trapezio "generico" ma con angoli fissi a 45° e vi allego il codice. Vorrei però generalizzare del tutto la procedura in modo da poter creare un trapezio con qualsiasi valore degli angoli, vi allego anche il mio tentativo (fallito per il momento). 

Se qualcuno riesce a scoprire come fare ne sarei molto felice. Se trovate codici più brevi, con meno passaggi, ancora meglio! Grazie :D

In riposta a BARTOLINI FRANCESCA

Re: Trapezio

di DE SANTIS GIULIA -

Ciao Francesca!

Ho ragionato un po' sulla tua domanda... Non sono riuscita a creare una procedura che generasse qualsiasi trapezio...però ne ho creata una usando anche IF che genera trapezi isosceli con angoli alla base di 30 °,45° e 60°. (per generare il trapezio a 45° ho copiato la tua procedura e poi ho ampliato creando quelle per 30 e 60 gradi).

Ti allego il file.

In riposta a BARTOLINI FRANCESCA

Re: Trapezio

di CHIARINI LETIZIA -

Ciao Francesca e Giulia,

Sono partita dalla versione di Giulia per generare un trapezio isoscele qualsiasi.


Per quanto riguarda l'ultimo angolo di deviazione, ovvero per l'ultimo comando RIGHT, si può usare RIGHT 90+A per qualsiasi trapezio isoscele (con A= 90° - ANGOLO ALLA BASE).

Infatti, l'ultimo angolo di deviazione (che chiamo x) è l'angolo esterno e quindi supplementare dell'angolo alla base, ovvero x=180-ANGOLO ALLA BASE. 

Ma avendo definito A=90°-ANGOLO ALLA BASE, allora ANGOLO ALLA BASE=90°-A. Quindi x=180-ANGOLO ALLA BASE=180-(90-A)=90+A.


Per quanto riguarda la base maggiore, ovvero l'ultimo comando FORWARD, il cateto del triangolo rettangolo formato dal lato X e dall'altezza del trapezio si può calcolare con la funzione seno (SIN). La lunghezza della base maggiore sarebbe Y+2*X*SIN A (con Y base minore e A come prima).


Il comando SIN, però, funziona con un argomento espresso in radianti, mentre RIGHT e LEFT argomenti in gradi, quindi non si può usare lo stesso A come argomento di tutti e tre i comandi. 

Perciò ho definito B=A*PI/180, proprio per convertire l'angolo da gradi a radianti sfruttando il pi greco, e successivamente ho inserito FORWARD Y+2*X*SIN B.


Spero di essermi spiegata bene; voi avevate trovato altre soluzioni?

Adesso resta da ragionare su un eventuale programma per disegnare un trapezio qualsiasi...