Première session 1997-1998

WB01624_.gif (281 octets) RETOUR

Jeudi 18 Juin 1998

Tous les documents sont autorisés.

Exercice 1

Sur la base de l'algorithme de clipping de Cohen-Sutherland, décrivez une généralisation aux polygones convexes quelconques du plan. On rappelle que cet algorithme, dans sa version de base, s'applique au clipping de segments à l'intérieur de portions rectangulaires du plan.

Exercice 2

On considère un cube que l’on souhaite transformer afin que sa représentation en projection parallèle soit un losange. Pour cela la projection utilisée est celle sur le plan Oxy, selon Oz. La représentation 2D doit être optimale dans la fenêtre de visualisation (occupation de l’espace).

Le cube a pour extrémités les points de coordonnées (0,0,0) et (2,2,2).

La fenêtre de visualisation a pour extrémités les points de coordonnées (0,0,0) et (20,20,0).

Donner le détail des opérations à effectuer pour réaliser cette transformation. Toutes les opérations sont à effectuer sous forme matricielle.

Remarque : Il n’est pas nécessaire d’effectuer les calculs de produits matriciels, la transformation du centre du cube peut-être intéressante.

Exercice 3 : VRML

On dispose sur les URL http://toto/table.wrl et http://toto/teapot.wrl de deux fichiers VRML 1.0 modélisant respectivement une table et un teapot. Ces objets ont les dimensions et les origines suivantes :

Dimension

Position de l'origine

http://toto/table.wrl

(140,80,80)

Centrée sur l'objet

http://toto/teapot.wrl

(18,15,12)

Centrée sur l'objet

Ecrire un fichier VRML 1.0 modélisant une scène constituée d'une table sur laquelle est posé un teapot. L'origine de cette scène est placée au centre de la face inférieure du fichier table.

Exercice 4 : OpenGL

Soit une sphère de rayon 5. Cette sphère est initialement placée en position (0, 0, 25). On désire faire subir à cette sphère le mouvement cyclique suivant :
  1. 5 tours d'un déplacement ellicoïdal défini par l'axe de direction (0,0,1) passant par le point (-20, 0, 0), le rayon 20 et le déplacement (0,0,5) par tour,

  2. un retour par translation sur la position (0,0,25).

Image001.gif (2710 octets)

Sur l'étape (1), on génère 72 * 5 = 360 images. Sur l'étape (2), on génère 100 images.

Ecrire les fonctions display() et anim() permettant de modéliser et d'animer cette scène en OpenGL.

Horizontale.gif (2348 octets)

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