Trouver un angle entre la droite formée par 2 pts et l'abscisse

feanor11 Messages postés 28 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 1 septembre 2005 - 23 juin 2005 à 19:34
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 - 25 juin 2005 à 11:01
En partant de deux points (A(xa, ya) ; B(xb,yb)), j'aimerai que mon
programme trouve, en fonction des coordonnées, l'angle orienté entre
l'axe (Ox) (l'abscisse) et le vecteur (AB). Comment faire ?

9 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
23 juin 2005 à 20:01
Je crois qu'on distingue 3 cas:

xa=xb: angle = + ou -pi/2

xa<xb: angle = (xb-xa)/(yb-ya) * pi/4

xb<xa: angle = pi + (xb-xa)/(yb-ya) * pi/4
0
cs_grhum59 Messages postés 35 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 18 mai 2010
24 juin 2005 à 11:28
je vois 3 cas aussi, mais pas le même :

xa = xb, comme tu l'a dit
ya yb angle 0

ya != yb et xa !=xb : angle = arctan ( (yb-ya) / (xb-xa) )
0
rvkiki Messages postés 11 Date d'inscription lundi 20 janvier 2003 Statut Membre Dernière intervention 1 juillet 2005
24 juin 2005 à 12:27
en fait je ne vois que 2 cas
si xa = xb alors faire le test : si yb> ya l'angle est de (pi/2) sinon il est de -(pi/2)dans tous les autres cas, angle arctan ( (yb-ya) / (xb-xa) ) donnera la bonne valeur ( meme l'angle 0 si ya = yb )
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
24 juin 2005 à 15:02
vous vous embetez pour rien les mecs, math.h c'est pas fait pour les chiens :D

bon je previens, l'astuce m'a été donnée par mon prof de maths, agrégé qui plus est

bref c'est pas de moi :$

angle =-atan2(pos.x,pos.z)

attention: normalement faut rajouter PI/2 a cet angle, et mettre le résultat de atan2 en float pour éviter un warning



++

ad

_______________________


Omnia vincit labor improbus
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 1
24 juin 2005 à 15:26
Sinon il y a le produit scalaire...



AB=(xb-xa,yb-ya) (AB est un vecteur)

on projete sur l'axe des abscisses avec le produit scalaire, donc en fait il reste:

(AB|x)=xb-xa=||AB||*cos(alpha);

D'ou alpha= arccos (( xb-xa)/||AB||)



La fonction arccos correspond à acos() dans math.h
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
24 juin 2005 à 17:15
Produit scalaire qui donne l'angle au signe pret. Signe que l'on obtient par le produit mixte.

En gros, un produit vectoriel déguisé.



Et la, on a aucun cas particulier à traiter.
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
24 juin 2005 à 19:31
avec atan(x,y) non plus ^^

_______________________


Omnia vincit labor improbus
0
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 1
24 juin 2005 à 19:47
oui c vrai et d'ailleurs en relisant son post ca a l'air important le signe puisqu'il veut un angle orienté...

Donc atan(x,y) semble preferable...
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
25 juin 2005 à 11:01
yep c'est d'ailleurs ce que j'utilise dans Sniper pour le systeme dee WayPoints a la counter :D

ca la ferait pas trop que le bonhomme courre en arriere :$

lol

++

ad

_______________________


Omnia vincit labor improbus
0
Rejoignez-nous