Salut,
je voudrais calculer l'angle orienté en degrés entre 2 vecteurs 3d et je me demandais si c'est possible avec seulement les 2 formules suivantes :
Pour tester je simule une rotation sur un axe x d'un repère global en right-hand. Je pose :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 cos a = <u,v> / (||u|| * ||v||) sin a = ||u^v|| / (||u|| * ||v||)
u = (0,1,0) -> axe y en fait
et v = (0,1,0) -> une copie de l'axe y sur lequel j'effectue une rotation positive dans le sens anti-horaire sur x.
Le problème est que les sin(a) et cos(a) sont les mêmes pour :
v = [0.0:0.0:1]
et pour :
v = [0.0:0.0:-1]
Il est donc impossible de récupérer le signe avec seulement les 2 formules citées en début de post ?
Ca correspond à 90° et 270°, mais acos(a) me retourne évidemment toujours 90° étant donné que cos(a) = 0.
J'avais pensé à tester le signe des composantes x, y, z de ||u^v|| mais je crois que cela ne fonctionne que sur des plans prédéfinis ?
Merci d'avance![]()
Partager