2010-02-26 4 views
14

Étant donné P1 et P2, comment puis-je obtenir l'angle de P1 à P2? MerciCalculer l'angle de 2 points

+9

Pour être pédant, deux points ne sont pas un angle entre eux. Deux vecteurs font, cependant. Regardez dans le produit scalaire et voyez ce que vous pouvez obtenir à partir de là. – GManNickG

+1

Je crois que OP signifie l'angle de la ligne joignant P1 et P2 fait avec l'axe x. Au moins, c'est ce que fait la réponse choisie. –

Répondre

33

Il est juste float angle = atan2(p1.y - p2.y, p1.x - p2.x).

Bien sûr, le type de retour est en radians, si vous en avez besoin en degrés juste faire angle * 180/PI

6

Ok, rappelez-vous le trig d'école secondaire. c'est ce que je reçois.

Deux points sont A (x1, y1) et B (x2, y2)

Je suppose que vous voulez que l'angle entre les deux points et l'origine O (0,0).

Eh bien, chaque point fait un triangle délimité par sa hauteur, sa base et son hypoténuse, donc vous obtenez deux angles alpha1 et alpha2. L'idée est de trouver chacun d'eux et de calculer l'angle bêta requis, en faisant beta = alpha1 - alpha2 où alpha1 est tel que alpha1> alpha2.

Compute alpha1 = inv_tan (y1/x1) et alpha2 = inv_tan (y2/x2)

puis faire beta = alpha1 - alpha2

+1

Les autres réponses correspondent à la même chose mais sont plus concises. – Ankur

Questions connexes