(a) La caméra est en position (0.0, 0.0, 100.0). Elle doit "regarder" directement le point de coordonnées (0.0, 0.0, 0.0). Son vecteur visualisation doit donc être orienté selon la direction (0.0, 0.0, -1.0).
La direction d'orientation par défaut des caméras VRML est (0.0, 0.0, -1.0)
-> La caméra est déjà correctement orientée.

(b) La caméra est en position (0.0, 0.0, -100.0). Elle doit "regarder" directement le point de coordonnées (0.0, 0.0, 0.0). Son vecteur visualisation doit donc être orienté selon la direction (0.0, 0.0, 1.0).
La direction d'orientation par défaut des caméras VRML est (0.0, 0.0, -1.0)
-> Il faut trouver une rotation qui transforme la direction (0.0, 0.0, -1.0) en la direction (0.0, 0.0, 1.0).
Toute rotation de 180° (p radian) autour d'un axe du plan xy réalisera la transformation demandée.
On pourra choisir par exemple l'axe x ou l'axe y.

(c) La caméra est en position (100.0, 0.0, 100.0). Elle doit "regarder" directement le point de coordonnées (0.0, 0.0, 0.0). Son vecteur visualisation doit donc être orienté selon la direction (-1.0, 0.0, -1.0) non normée ou (-0.707, 0.0, -0.707) normée (0.707 = 1.0 / sqrt(2.0)).
La direction d'orientation par défaut des caméras VRML est (0.0, 0.0, -1.0)
-> Il faut trouver une rotation qui transforme la direction (0.0, 0.0, -1.0) en la direction (-0.707, 0.0, -0.707).
Parmi toutes les possibilités, la manipulation demandée pourra consister à "tourner la tête" de la caméra de 45° (p/4 radian) vers la "gauche". La rotation est donc réalisée autour de l'axe y. Le signe de l'angle de rotation est positif car on fait tourner -z en direction de -x.

(d) La caméra est en position (100.0, 100.0, 100.0). Elle doit "regarder" directement le point de coordonnées (0.0, 0.0, 0.0). Son vecteur visualisation doit donc être orienté selon la direction (-1.0, -1.0, -1.0) non normée ou (-0.577, -0.577, -0.577) normée (0.577 = 1.0 / sqrt(3.0)).
La direction d'orientation par défaut des caméras VRML est (0.0, 0.0, -1.0)
-> Il faut trouver une rotation qui transforme la direction (0.0, 0.0, -1.0) en la direction (-0.577, -0.577, -0.577).
On propose deux solutions:

  1. Tourner autour d'un axe orthogonal aux directions initiale et finale pour un angle égal à l'angle entre ces deux directions.
  2. Tourner de 180° (p radian) autour de l'axe bissecteur entre les deux directions.

Les images obtenues dans le cadre de ces deux solutions sont inversées.

  1. Pour trouver un axe orthogonal à (0.0, 0.0, -1.0) et (-0.577, -0.577, -0.577), on calcul le produit vectoriel entre ces deux directions. Le résultat est (-0.577, 0.577, 0.0) ou bien encore (-1.0, 1.0, 0.0) si cette direction n'est pas obligatoirement normée.
    Pour trouver l'angle entre les deux directions, on peut utiliser le produit scalaire de ces deux directions qui est égal au cosinus de l'angle pour peu que les deux directions soient normées. Le produit scalaire est égal à 0.577. On obtient un angle de 54.76° (0,9557 radian).
  2. L'angle est connu. La direction de la bissectrice est obtenue est sommant les directions initiale et finale et en normant le résultat si nécessaire. On obtient (-0.577, -0.577, -1.577) et (-0.325, -0.325, -0.888) après normalisation.

RETOUR