Le plus gros du travail est d'implémenter une métaphore de navigation connue sous le nom de métaphore du prommeneur. Le prommeneur reste dans le plan horizontal, mais peut avancer, reculer, pivoter à gauche et à droite. Ces mouvements seront disponibles à partir de la souris (avec le bouton 1 enfoncé), ou à partir de certaines touches du clavier:
Action | Touche QWERTY | Touche AZERTY |
---|---|---|
Avancer | W | Z |
Reculer | S | S |
Pivoter à gauche | Q | A |
Pivoter à droite | E | E |
Pas chassé à gauche | A | Q |
Pas chassé à droite | D | D
Pour changer la disposition de votre clavier, chercher un
#define
dans la section "Keyboard Management" du fichier de
travail. Les pas chassés ne sont pas disponibles à la souris.
Additionnellement, la touche R (comme reset) servira à réinitialiser le point de vue à sa position d'origine.
viewpoint_reset()
,
viewpoint_translate()
et viewpoint_rotate()
. Ces
fonctions doivent manipuler certaines structures de données relatives à la
navigation que vous avez également le soin de définir. Toutes les
indications nécessaires sont données en commentaire dans le code.
Pour ce qui concerne le tracé des objets, les zones concernées dans le
code sont le corps des fonctions window_redisplay()
et
window_reshape()
.
Enfin, l'initialisation d'OpenGL ainsi que la définition des objets
s'effectue dans la fonction main()
.
window_redisplay
et
window_reshape
. Cela ne présente pas de difficulté
particulière.
viewpoint_reset
, comme si le
point de vue restait fixe. À ce stade, vous devriez voir apparaître
la sphère. Notez cependant que pour gérer le point de vue
dynamique, il vous faudra surement retravailler sur cette fonction
un peu plus tard.