In un articolo precedente si è visto come disegnare poligoni e circonferenze sfruttando alcune caratteristiche di Scratch
Per approfondire la conoscenza del funzionamento di Scratch si possono sperimentare delle modifiche aglli script per vedere cosa accade.
In quell'articolo è stato mostrato un modo di animare le orbite circolari dei pianeti.
Quel modo è stato ripreso in questo progetto con [tasto 1] del progetto "esperimenti sui cerchi".
È tutto un'illusione. Lo sprite viene inizialmente posizionato al centro, la direzione viene ruotata di un certo angolo ed in seguito viene comandato di fare 100 passi in avanti.
La ripetizione continua di questi tre comandi crea una strana situazione: la posizione acquista con l'ultimo dei comandi, quello al termine del ciclo "per sempre", è quella che viene visualizzata, quella al centro no.
La ragione sta nel fatto che la grafica di Scratch è sincronizzata con i comandi di controllo ed inoltre il ritorno alla prima linea del codice richiede una elaborazione più lunga col risultatao che "pesa" di più l'ultima posizione occupata (nota 1).
Scambiando l'ordine delle istruzioni interne al ciclo (quelle blu) le cose cambiano.
Dopo aver arrestato il moto si prova con altri tasti numerici.
Con [tasto 2] oppure [tasto 3] si agisce su un ciclo dove l'ultima istruzione è diversa da "fai cento passi". In questo caso si osserva l'oggetto ruotare su se stesso nella posizione centrale.
Con [tasto 4] si osserva l'effetto di una istruzione di attesa, seppur per un tempo nullo.
L'attesa genera comunque un segnale di rinfresco della grafica per cui si vede anche lo sprite quando occupa la posizione centrale.
L'oggetto viene posizionato al centro, lo stage viene ridisegnato, poi l'oggetto viene posizionato fuori e, di nuovo, lo stage viene ridisegnato.
Risultato: si vedono i percorsi a raggiera compiuti dall'oggetto.
Con [tasto 5] si prova a vedere cosa fa entro tempo di un secondo per fare qualche misurazione sul modo di disegnare di Scratch.
Risultato: compie 30-31 cicli di disegno. L'argomento è stato trattato in un altro articolo .
Con [tasto 6] si esegue più volte la sequenza principale senza l'uso di un ciclo ma disponendo una ripetizione continua tramite un messaggio di richiamo della sequenza stessa.
Quello che si osserva è fortemente dipendente dall'angolo di rotazione scelto. Non esiste più la circonferenza o il poligono ma varie figure geometriche regolari convesse o concave o composte da sovrapposizioni.
Interessante è notare come si comporta con multipli di 3, 9 o 12.
L'assenza di un ciclo e quindi della forzatura del ridisegno al termine di esso porta Scratch ad eseguiire il ridisegno al ritmo di 30 frame per secondo che è il frame rate adottato da Scratch..
note
nota 1: Se l'esperimento viene condotto in modalità "turbo", quando l'effetto dell'aggiornamento della grafica viene ridotto al minimo o annullato, si vede l'effetto della permanenza data dalla maggior durata di esecuzione.