Deuxième session 2001-2002

WB01624_.gif (281 octets) RETOUR

Mercredi 26 Juin 2002 - 2h

Tous les documents sont autorisés.

Question 1: OpenGL + GLUt

On souhaite visualiser une scène en perspective selon les caractéristiques suivantes:

  • Le point visé est en position (10.0, 10.0, 10.0).
  • La caméra de visualisation est placée en position (0.0, 25.0, 40.0).
  • L'axe vertical de la caméra est l'axe (1.0, 1.0, 0.0) du repère global.
  • La caméra de visualisation possède une ouverture verticale de 10°.
  • La visualisation conserve les proportions en x et en y.
  • L'objet le plus proche de la caméra est à une distance de 30.0. Celui le plus loin est à une distance de 150.0.

Ecrire une fonction reshape OpenGL vérifiant au mieux ces caractéristiques.

Correction

Question 2: Mathématiques de l'Infographie

  1. Proposez une structure de données permettant de stocker une matrice de transformation en coordonnées homogènes.
  2. Implantez une fonction de multiplication de matrices de transformation.

Correction

Question 3: OpenGL

On souhaite programmer une animation où deux sphères de rayon 1 se font la course sur une trajectoire circulaire de rayon 10, de centre l'origine et tracée dans le plan xOy. Ces sphères sont respectivement blanche et rouge et sont éclairées par une lumière directionnelle d'incidence (1.0, 1.0, -1.0). Le programme devra être construit de tel manière qu'une première frappe de la touche "return" lance la sphère blanche, qu'une seconde frappe de la touche "return" lance la sphère rouge. L'animation s'arrête lorsque la sphère rouge dépasse la sphère blanche ou réciproque. Elle peut être relancée par une nouvelle double frappe de "return". La sphère blanche se déplace à raison de 1.5 degré entre chaque image. La sphère rouge se déplace à raison de 3.5 degrés entre chaque image.

Programmer les fonctions OpenGL init, display, idle et key assurant cette animation.

Correction

Question 4: VRML

  1. Ecrire un fichier VRML définissant un cube canonique rouge, une sphère canonique verte et un cylindre canonique bleu aux positions (3.0, 0.0, 0.0), (0.0, 0.0, 0.0) et (-3.0, 0.0, 0.0).
  2. Ecrire un second fichier VRML faisant appel au premier pour construire la scène présentée sur le figure ci-dessous (distance 6 entre les objets du haut et ceux du bas).

 

Correction

Horizontale.gif (2348 octets)

Remarques, erreurs
nicolas.janey@univ-fcomte.fr