J'ai besoin, pour un programme en opengl, de faire redresser un vecteur OB (cf schéma) vers l'axe des Z, c'est-à-dire en OC, tel que alpha = Beta/2, sachant que je connais theta. Ceci se passe en trois dimensions, donc Ur est bien le vecteur projeté de OB sur le plan Oxy.
J'ai pensé utiliser une matrice A traduisant la "rotation" telle que
En effet si vous prenez la base (Ox, Oy, Oz), Ox devient , Oy devient et Oz ne varie pas, il est déjà redressé le plus possible.
Néanmoins cette matrice est fausse, car si on essaie de calculer l'image du vecteur (1,1,0), on a (1,1,2) ce qui est incorrect, car on obtien pas un angle de 45/2 (degrés).
Quelqu'un voit-il où est l'erreur de raisonnement ?
Salut,
Es-tu sûr que l'application que tu considères est linéaire ? Si ce n'est pas le cas, tu ne peux pas utiliser de matrices...
Encore une victoire de Canard !
08/01/2005 - 15h37
Naoli
Date d'inscription
janvier 2004
Localisation
Lyon
Âge
27
Messages
392
Re : Matrice de redressement d'un vecteur
Salut,
J'avais pensé à ça... Qu'en dis-tu, toi ? Je pense qu'elle l'est : si deux vecteurs ont la même image, nécessairement c'est qu'ils sont égaux, et le seul vecteur invariant c'est Oz, qui va sur Oz. Y'a un problème pour -Oz qui n'a pas d'image, mais bon, je ne pense pas que ça soit un pb.
08/01/2005 - 15h40
Coincoin
Date d'inscription
octobre 2003
Localisation
Paris
Âge
28
Messages
16 627
Re : Matrice de redressement d'un vecteur
Qu'en dis-tu, toi ?
Moi, je dirais que non... Le problème que tu cites dans ton premier message revient à dire que f(x)+f(y) ne correspond pas à f(x+y).
Je pense que tu ne peux pas utiliser de matrices, et qu'il faut à partir des coordonnées de OB déterminer les angles à l'axe z, puis les diviser par 2, et enfin dire que la norme se conserve pour trouver la 3e coordonnée.
Encore une victoire de Canard !
08/01/2005 - 19h57
Naoli
Date d'inscription
janvier 2004
Localisation
Lyon
Âge
27
Messages
392
Re : Matrice de redressement d'un vecteur
En fait j'ai fait plus simple : Ur_c = L sin alpha, Zc = L cos alpha et ça roule
Mais j'aurai bien voulu faire ça en matrice... Mais tu as raison, ce n'est pas linéaire.