At My Fingertips
In questa attività implementeremo una funzione chiamata stella che ci permetterà di creare stelle con un numero n di punte per n maggiore di 2: questo significa che potremo ottenere stelle a tre, quattro, cinque punte e così via.
La funzione stella
prenderà inoltre come parametro le dimensioni e l'angolo di ciascun vertice. Nella nostra implementazione se l'angolo è troppo ottuso i risultati non sono accettabili, per cui imposteremo un angolo_massimo
di 360/n, dove n rappresenta il numero di vertici di ogni stella.
Esempio: per le stelle a cinque punte, l'angolo massimo equivale a 360°/5 = 72°. Nell'immagine seguente puoi vedere una stella a cinque punte con vertici di 30°, una con vertici di 50° e una con vertici di 72°.
Ricordati di asserire (assert) che l' angolo
dato sia inferiore o uguale a 360/n!
Come mostrato nell'immagine sottostante, notiamo che le stelle possono essere composte creando n triangoli isosceli, progressivamente ruotati secondo un angolo_di_rotazione
di 180 - (180 * n - 360) / n gradi, e fissandoli tutti in basso al centro.
Cominciamo creando una funzione triangolo_isoscele
che ritorna un triangolo isoscele ruotato verticalmente. Ricordati che chiamare triangolo(160, 160, 40, COLORE_STELLA
genera il triangolo seguente.
Per farlo stare in piedi diritto occorre ruotarlo dell'angolo rappresentato di seguito:
Per farlo stare in piedi diritto occorre ruotarlo dell'angolo rappresentato di seguito:
Attenzione
Queste immagini sono soltanto indicative: servono ad aiutarti nel ragionamento, ma non rappresentano quello che dovrà necessariamente essere il risultato finale. L'angolo di rotazione non deve essere un valore fisso, ma deve essere calcolato in modo da funzionare con qualsiasi tipo di triangolo isoscele. Cerca di elaborare una formula per calcolare l'angolo di rotazione (indicato in grigio nella seconda immagine), in funzione dell'angolo tra i due lati uguali del triangolo (in basso a sinistra nella seconda immagine), il cui valore è indicato dal parametro angolo
. Per facilitarti il compito puoi anche suddividere il calcolo in diversi passaggi.
Suggerimenti:
triangolo_isoscele
nella tua toolbox cliccando sull'icona
sulla cella che contiene la definizione della funzione.
Dopo aver fatto questo lavoro, importa la funzione triangolo_isoscele
dalla tua toolbox eseguendo la prossima casella di codice.
Ora puoi implementare la funzione stella
. Usa il COLORE_STELLA
indicato per ottenere lo stesso colore che abbiamo usato noi e i parametri seguenti:
n
: il numero dei vertici della stella: asserisci che siano almeno tre;Nota bene: utilizzando la parola chiave assert
puoi fare in modo che il programma controlli di avere ricevuto parametri validi, restituendo un messaggio di errore nel caso contrario. Nel nostro caso, per accertare che la stella abbia almeno tre vertici puoi digitare l'istruzione assert n > 2
.
dimensioni
: approssimativamente le dimensioni di ogni vertice; asserisci che si tratti di un numero positivo;angolo
: è l'angolo di ciascuno dei vertici; asserisci che sia maggiore di 0 e minore di 360/n.Ricorda che ogni vertice è ruotato rispetto al precedente secondo un angolo_di_rotazione
pari a 180 - (180*n - 360)/n.
This activity has been created by Lardelli and is licensed under CC BY-SA 4.0.
It is derived from this activity.
Stella
PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI
Privacy Policy • Platform Version b744b47 (Tue, 08 Oct 2024 16:30:14 GMT)