Velocità dell’animazione

Un’animazione deve contenere un’istruzione rate() oppure sleep()

  • la scena 3D viene aggiornata più volte al secondo (altrimenti verrebbe aggiornata solo alla fine dei calcoli)
  • si rallenta l’esecuzione nel caso di calcoli/animazioni troppo veloci
  • si gestiscono gli eventi della tastiera e del mouse
  • si può intervenire con zoom e rotazione

rate()

Con

RATE=50
...
while(...):
    rate(RATE)
    ...

L’esecuzione si interrompe in modo che passino 1/RATE secondi tra una chiamata e l’altra.
Per esempio se RATE=50 allora l’esecuzione si interromperà abbastanza per far passare 1/50 sec. = 0.02 sec.
Se il tempo è già passato allora non ci sarà nessuna interruzione.
Anche con computer con prestazioni molto diverse l’animazione sembrerà la stessa.

sleep()

Un’altra possibilità per avere lo stesso risultato

SLEEP=0.02
...
while(...):
    sleep(SLEEP)
    ...

Osserva: SLEEP=1/RATE

La versione originale di time.sleep() rallenta l’esecuzione ma non ammette l’interazione…

clock()

La funzione si può utilizzare (…) per calcolare i secondi passati

t1 = clock()
...
t2 = clock()

delta = t2-t1 # Numero di secondi passati tra le due chiamate

Lascia un commento