volpi a écrit:Bonjour ,
Je recherche une solution pour trouver un angle à partir de coordonnées. Sachant que les coordonnées peuvent être quelconques.ce problème est à l'origine de la mécanique.Je doit connaitre cette angle pour déterminer des efforts mais ma donnée d'entrée est uniquement des coordonnées de points.
L'utilisation du produit scalaire n'est pas possible car elle s'applique pour un angle entre 0° et 180° et il est nécessaire de connaitre le "cadran" pour appliquer Xb-Xa=Norme vecteur AB cos (angle).
L'utilisation de coordonnées polaires peut débloquer le problème ?
Merci beaucoup pour votre aide ,
Bonjour,
Le product scalaire marche très bien, il suffit de la compéter par un petit test pour trouver le "cadran" ou plutôt le demi-plan.
En clair, si u(x,y) et v(x',y') sont tes deux vecteurs, tu as :
Tu prends donc
qui est entre 0 et pi. Le problème comme tu l'as dit est que tu ne sais pas si l'angle orienté que tu cherche est theta ou -theta.
C'est là que le déterminant entre en jeu. det(u,v)=xy'-yx'=||u||.||v||.sin(theta) (voir page Wikipédia sur le déterminant si tu ne connais pas.
et le signe du déterminant permet donc de conclure : si det(u,v)>0, c'est que ton angle est positif, sinon, qu'il est négatif !
En résumé :
Damien