require("../global.php"); entete(); ?>
Un petit point sur la translation car ça va nous servir dans la suite: translater un objet c'est le déplacer en ligne droite d'une distance donnée. Comme notre objet ne se déforme pas, pour faire celà on va déplacer tous les points de l'objet de la distance et dans la direction spécifiée.
Ceux qui ont fait un poil de géométrie savent que ce déplacement peut être caractérisé par un vecteur : sa direction et sa longueur (sa norme) représentent le déplacement à faire et il n'y a qu'à ajouter ce vecteur à chaque sommet des polygones de l'objet. Pour être mathématiquement correct, on ajoute pas le point P au vecteur D pour le translater mais le vecteur OP au vecteur D.
Et l'addition vectorielle c'est l'ajout des composantes des vecteurs. Par exemple (1, 2, 3) + (4, 5, 6) = (1+4, 2+5, 3+6) = (5, 7, 9).
Chaque composante du vecteur translation représente le déplacement à faire sur les 3 axes : en x, en y et en z.
Par exemple un cube est représenté par les 8 points :
P1 = (-5, -5, -5)
P2 = (5, -5, -5)
P3 = (5, 5, -5)
P4 = (-5, 5, -5)
P5 = (5, -5, 5)
P6 = (-5, -5, 5)
P7 = (-5, 5, 5)
P8 = (5, 5 , 5)
C'est un cube de 10 de coté et centré sur (0, 0, 0).
On va translater le cube de manière à ce que le point P1 se retrouve en (5, 5, 5).
Le déplacement en x de P1 sera 10, 10 également en y et en z. Le vecteur déplacement sera donc (10, 10, 10).
Une autre façon de le dire : le vecteur déplacement D est la différence des points d'arrivée et de départ :
D = (5, 5, 5) - (-5, -5, -5) = (10, 10, 10)
Ensuite, il ne reste plus qu'à ajouter D à tous les points du cube, ce qui donne :
A1 = P1 + D = (5, 5, 5)
A2 = P2 + D = (15, 5, 5)
A3 = P3 + D = (15, 15, 5)
A4 = P4 + D = (5, 15, 5)
A5 = P5 + D = (15, 5, 15)
A6 = P6 + D = (5, 5, 15)
A7 = P7 + D = (5, 15, 15)
A8 = P8 + D = (15, 15 , 15)
Plus généralement, pour déterminer ce vecteur translation on cherche 2 points qui vont caractériser le déplacement: un point de départ et un point d'arrivée. Dans l'exemple du cube, on pouvait partir du principe que le centre du cube passe de (0, 0, 0) à (10, 10, 10). Le vecteur translation est la différence donc :
D = (10, 10, 10) - (0, 0, 0) = (10-0, 10-0, 10-0) = (10, 10, 10).
Et au niveau de la complexité de calcul, la translation d'un point d'un objet c'est 3 additions de précalcul (pour déterminer le vecteur déplacement) et ensuite 3 additions par point translaté.
Continuons avec nos transformations modestes. Comment faire tourner un point autour de l'origine du repère.
PiedDePage(); ?>