home - blog - Scratch e le coordinate polari
#scratch #coding #pensieroComputazionale
by Leonori Danila, 08-09-2019

Tempo Lettura articoloTempo di lettura/visione: 3 min

lezione free corso

Abbiamo un regalo per te!


Fai il login e guarda GRATUITAMENTE la prima lezione del corso

Scratch e le coordinate polari

Anteprima Articolo Blog Scratch e le coordinate polari

Muovere uno sprite

Il comando fai … passi di Scratch è piuttosto sottovalutato. In fin dei conti fa solamente muovere il gatto di un numero di passi scelto dal programmatore.

In realtà fa molto di più, perché fa muovere il gatto (o un altro sprite) nella direzione in cui sta puntando.
Quindi il movimento relativo che viene eseguito (relativo perché dipende dal punto di partenza dello sprite) tiene conto di due fattori:
  • la direzione;
  • il numero dei passi.

Questo è ben diverso dal blocco vai a x: … y: … oppure dal blocco cambia x di … .


Gli sprite e il numero di passi

Tutti sappiamo che lo stage di Scratch è in realtà un piano cartesiano. È facile posizionare uno sprite in un punto preciso dello schermo assegnando un valore alla coordinata x e uno alla coordinata y.

Quando usiamo il comando fai … passi entriamo nel magico mondo del sistema di coordinate polari, dove ogni punto del piano può essere identificato non da due coordinate ma da un angolo e da una distanza da un punto fisso.

Quindi se lo sprite (il gatto o forse parlando di coordinate polare si potrebbe usare il pinguino...) si trova al centro dello stage (x = 0, y = 0) e gli facciamo fare 150 passi, in che punto si sposterà?

Non possiamo sapere la risposta se non conosciamo anche la direzione dello sprite.

Gli sprite e la direzione

Se la direzione è 90 (quindi verso destra), il punto di arrivo sarà x =150 e y = 100.
Se invece la direzione fosse 75 (quindi verso destra e un po' anche verso l'alto), in suo punto di arrivo sarà... non così semplice da calcolare perché dovremo usare la funzioni trigonometriche di seno e coseno.

In realtà invece di ricorrere alla matematica possiamo costruire il programma con Scratch (Figura 1), eseguirlo
e poi attivare la visualizzazione delle coordinate (Figura 2) per verificare il punto di arrivo sullo stage (Figura 3).
Ora, se ripetiamo più volte parte dello script di Figura 1, ma ad ogni ripetizione modifichiamo l'angolo (Figura 4), il gatto si muoverà in tondo, come se fosse legato a punto centrale dello stage da un guinzaglio invisibile.

Per ottenere tutto ciò bisogna creare prima una variabile (Figura 5).
È evidente che oltre all'angolo possiamo contemporaneamente modificare anche la distanza dal punto centrale, quindi la lunghezza del guinzaglio invisibile del gatto (Figura 6).
A questo punto può venire la curiosità di poter vedere graficamente qual è il reale percorso seguito dal gatto (tutti i punti di arrivo, insomma).

Per farlo, possiamo caricare le estensioni “Penna”, cliccando prima il pulsante in basso a sinistra (Figura 7) e poi scegliendo la corretta estensione (Figura 8).
Basterà aggiungere un paio di blocchi (Figura 9) per vedere il gatto tracciare una spirale (Figura 10, il gatto è stato spostato al termine dell'esecuzione).

Per il codice completo e il funzionamento, il progetto di Scratch sulle coordinate polari è disponibile a questo link.

Seguici!

Ancora una volta grazie ad Andrea Ferraresso per la collaborazione.

Per non perdere nessun aggiornamento segui la pagina Facebook di We Turtle e iscriviti alla newsletter!
TORNA AGLI ARTICOLI


Ti è piaciuto questo articolo? Continua ad esplorare WeTurtle!


Ti consigliamo il corso

SCOPRI IL CORSO

ALTRI CONTENUTI DI WETURTLE

CITTADINANZA DIGITALE: una passeggiata al sole per...

FREE

Tempo: 6 min

PROGETTO
   Luca SCALZULLO
Come usare Microsoft Teams

FREE

Tempo: 19 min

TUTORIAL
   Mariano Pierantozzi
Le implicazioni dell’intelligenza artificiale nel...

FREE

Tempo: 6 min

PUBBLICAZIONE
   Lorenzo Cesaretti
L’insostenibile leggerezza delle liste

FREE

Tempo: 2 min

BLOG
   Danila Leonori
Introduzione alla Robotica con Lego Mindstorms EV3

5.00€

Tempo: 70 min

PROGETTO
   Lorenzo Cesaretti