7.3 Tracer une forme à des tailles diverses

Nous avons vu comment tracer un carré, un rectangle à des tailles différentes. Nous allons reprendre l’exemple de la maison p. 58 et voir comment modifier le code pour tracer la maison à l’échelle souhaitée.



L’objectif est de passer un argument à la procédure ma pour que selon le paramètre, la maison soit plus ou moins grande. Nous souhaitons que ma 1 trace la maison en taille réelle.

ma 0,5 tracera une maison à l’échelle 0,5.

ma 2 tracera une maison aux dimensions deux fois plus grandes etc



La notion de proportionnalité est bien sûr sous-jacente. En vraie grandeur, la procédure carre était la suivante :

 pour carre
 repete 4[av 150 td 90]
 fin

Toutes les dimensions originales de la maison sont multipliées par l’échelle. La procédure carre devient :

 pour carre :c
 repete 4[av 150*:c td 90]
 fin

Ainsi quand on tapera carre 2, le carré aura pour côté 150 × 2 = 300. les proportions sont bien respectées! En fait, on s’aperçoit qu’il va juste falloir reprendre toutes les procédures et changer les longueurs de déplacement de la manière suivante :

av 70 devient av 70* :c

av 45 devient av 45* :c

etc



 pour carre :c
 repete 4[av 150*:c  td 90]
 fin
 
 pour tri :c
 repete 3[av 150*:c td 120]
 fin
 
                                                                                                  
                                                                                                  
 pour porte :c
 repete 2[av 70*:c td 90 av 50*:c td 90]
 fin
 
 pour che :c
 av 55*:c td 90 av 20*:c td 90 av 20*:c
 fin
 
 pour dep1 :c
 td 90 av 50*:c tg 90
 fin
 
 pour dep2 :c
 tg 90 av 50*:c td 90 av 150*:c td 30
 fin
 
 pour dep3 :c
 lc td 60 av 20*:c tg 90 av 35*:c bc
 fin
 
 pour ma :c
 carre :c dep1 :c porte :c dep2 :c tri :c dep3 :c che :c
 fin