9.2 Une animation : le bonhomme qui grandit

PIC

Tout d’abord, nous allons définir une procédure bon qui trace le bonhomme ci-contre à la taille de notre choix.

pour bon :c  
tg 154 av 44*:c re 44*:c  
tg 52 av 44*:c re 44*:c  
tg 154 av 40*:c  
tg 154 av 44*:c re :c*44  
tg 52 av 44*:c re :c*44  
tg 154 av 10*:c  
tg 90 repete 180[av :c/2 td 2] td 90  
fin

Nous allons à présent créer une animation donnant l’illusion que le bonhomme grandit petit à petit. Pour cela, nous allons tracer bon 0.1 puis bon 0.2 bon 0.3 ... jusqu’à bon 5. Entre chaque tracé, on effacera l’écran. On obtient les deux procédures suivantes :

pour bon :c  
tg 154 av 44*:c re 44*:c  
tg 52 av 44*:c re 44*:c  
tg 154 av 40*:c  
tg 154 av 44*:c re :c*44  
tg 52 av 44*:c re :c*44  
tg 154 av 10*:c  
tg 90 repete 180[av :c/2 td 2] td 90  
si :c=5[stop]  
ve ct bon :c+0.1  
fin  
 
pour demarrer  
ve ct  
bon 0  
fin

Enfin, pour fluidifier le tout, on va se servir du mode animation et de la primitive rafraichis.

pour bon :c  
tg 154 av 44*:c re 44*:c  
tg 52 av 44*:c re 44*:c  
tg 154 av 40*:c  
tg 154 av 44*:c re :c*44  
tg 52 av 44*:c re :c*44  
tg 154 av 10*:c  
tg 90 repete 180[av :c/2 td 2] td 90  
rafraichis  
si :c=5[stop]  
ve ct bon :c+0.1  
fin  
 
pour demarrer  
ct animation  
bon 0  
stopanimation  
fin  

Remarque : Ici, la procédure bon est récursive, on aurait plus simplement utiliser la primitive repetepour afin de faire varier :c de 0,1 à 5. Voici le programme obtenu alors :

pour bon :c  
ve ct tg 154 av 44*:c re 44*:c  
tg 52 av 44*:c re 44*:c  
tg 154 av 40*:c  
tg 154 av 44*:c re :c*44  
tg 52 av 44*:c re :c*44  
tg 154 av 10*:c  
tg 90 repete 180[av :c/2 td 2] td 90  
rafraichis  
fin  
 
pour demarrer  
ct animation  
repetepour [c 0 5 0.1][bon :c]  
stopanimation  
fin