You are on page 1of 3

T.P.

Transformation géométrique.

28 septembre 2009

• Date de remise : 19 o tobre avant 23:59


• Peut être fait seul(e) ou en équipe de deux (2).

1 Introdu tion
Le premier tp est un logi iel qui al ule une matri e représentant une trans-
formation géométrique à deux dimensions. Le logi iel va démarrer ave une
matri e identité et ensuite le lient pourra ajouter des transformations linéaire.
Les transformations possible sont les rotations, translations et les homothéties.
Lorsque l'utilisateur à terminé le logi iel a he la matri e résultante.

2 Des ription
Votre logi iel devra être apable de demander au lient les transformations à
appliquer, onstruire les matri es représentant les transformations, multiplier
les matri es et a her le résultat.

2.1 Entrées de l'utilisateur


Lors du démarrage du logi iel un menu sera a hé à l'é ran. Ce menu on-
tiendra quatre (4) options : translation, rotation, homothétie et terminer.
Cha une de es options sera asso iées à un hire, 1 pour la translation, 2 pour
la rotation, 3 pour l'homothétie et 4 pour l'option terminer. Ensuite vous
lisez le hoix au lavier et vous le validez. Après avoir fait le traitement demandé
vous a hez à nouveau le menu et re ommen é jusqu'à e que l'utilisateur hoi-
sisse l'option 4, dans e as vous a hez le résultat.

2.2 Constru tion de matri e de transformation


Une matri e de transformation à deux dimensions est une matri e de 3 × 3. Au
lan ement le logi iel doit avoir une matri e d'identité :

1
2.3 Multipli ation de matri e T.P.1

 
1 0 0
0 1 0 (1)
0 0 1
Lorsque l'utilisateur demande une translation vous devez lui demander deux
valeurs de type double. La première valeur représente la translation sur l'axe des
x et la se onde représente le dépla ement sur l'axe des y . La matri e résultante
sera :
 
1 0 x
0 1 y (2)
0 0 1
Pour les rotations vous devez demander une valeur de type double à l'utilisateur.
Cette valeur représentera l'angle de rotation θ autour de l'origine (en radian).
La matri e de rotation sera :
 
cos θ − sin θ 0
 sin θ cos θ 0 (3)
0 0 1
Finalement si l'utilisateur demande un agrandissement alors vous demandez
une valeur de type double qui représentera le fa teur d'agrandissement s. Dans
e as la matri e sera :
 
s 0 0
0 s 0 (4)
0 0 1

2.3 Multipli ation de matri e


Le résultat sera la ombinaison des transformations données par le lient. Pour
ombiner les matri es vous devez les multiplier. Il est impératif de faire es
multipli ations dans le bon ordre. Disons que nous démarrons ave la matri e
identité I . Ensuite l'utilisateur demande une homothétie de 2.0. nous allons
avoir la multipli ation suivante :
     
2 0 0 1 0 0 2 0 0
0 2 0 × 0 1 0  = 0 2 0 (5)
0 0 1 0 0 1 0 0 1
Remarquez que la transformation va à l'avant de la matri e ourrante I . Si
le lient demande ensuite une translation de (−1, 3.5) alors nous obtiendrons :
     
1 0 −1 2 0 0 2 0 −1
0 1 3.5 × 0 2 0  = 0 2 3.5 (6)
0 0 1 0 0 1 0 0 1
En ore une fois la nouvelle matri e est pla ée à gau he du résultat ourrant.

2
2.4 A her le résultat T.P.1

2.4 A her le résultat


Lorsque le lient hoisie la quatrième option il ne vous reste plus qu'à a her
le résultat. Chaque ligne de la matri e est a hée à l'é ran sur une ligne.
Les valeurs d'une ligne sont séparée par des espa es. Chaque olonne doit être
enligné sur le '.' du nombre. Pour le al ul pré édant nous obtiendrions :
2.0 0.0 -1.0
0.0 2.0 3.5
0.0 0.0 1.0

Finalement votre programme se termine.

3 Lisibilité
Voi i les éléments de lisibilité et de stru ture qui seront notés :
• Pas d'utilisation de goto et de variables globales.
• Vous devez utiliser onst pour les onstantes (pas dene).
• Les fon tions ont un ommentaire d'entête dé rivant leurs ontrats :
 leurs entrées,
 leurs sorties,
 e qu'elles font.
• Bonne indentation du ode.
• Identi ateurs signi atifs (en français).
• Bon espa ement du ode : laissez des lignes vides et des espa es pour aérer
votre ode.
• Plusieurs pro édures, pas trop de ode dans le main.

4 Remise
Votre t.p. doit être remis avant le 19 o tobre 23:59. S.v.p. : é rivez vos
noms au début de votre programme. Votre ode doit ontenir au moins
une lasse. Pour remettre le tp il faut faire une ar hive de votre(vos)  hier(s).
Cette ar hive doit in lure un Makele si vous avez plusieurs  hiers. Pour
ar hiver, utilisez tar vf et ensuite utilisez gzip pour ompresser votre projet.
Pour remettre le tp utilisez la ommande suivante :
rendre_tp ~malenfant_b/tp1.aut09.3105 tp1.tar.gz

You might also like