2010-02-26 16 views
14

Biorąc pod uwagę P1 i P2, jak mogę uzyskać kąt od P1 do P2? DziękiOblicz kąt 2 punktów

+9

Być pedant, dwa punkty nie mają kąt między nimi. Jednakże są to dwa wektory. Zajrzyj do produktu z kropką i sprawdź, co możesz tam uzyskać. – GManNickG

+1

Wierzę, że OP oznacza kąt, w którym linia łącząca P1 i P2 tworzy z osią x. Przynajmniej tak działa wybrana odpowiedź. –

Odpowiedz

33

To tylko float angle = atan2(p1.y - p2.y, p1.x - p2.x).

Oczywiście typ zwracany jest w radianach, jeśli jest to potrzebne w stopniach prostu zrobić angle * 180/PI

6

Dobrze pamiętam high school trig. to właśnie dostaję.

dwa punkty A (x1, y1) i B (x2, y2)

zakładam chcesz kąt pomiędzy dwoma punktami i O pochodzenia (0,0).

Cóż, każdy punkt tworzy trójkąt ograniczony przez jego wysokość, podstawę i przeciwprostokątną, dzięki czemu uzyskuje się dwa kąty alfa1 i alfa2. Chodzi o to, aby znaleźć każdą z nich i obliczyć wymagany kąt beta, wykonując beta = alfa1 - alfa2, gdzie alfa1 jest taki, że alfa1> alfa2.

Compute alfa1 = inv_tan (y1/x1) i alfa2 = inv_tan (y2/x2)

następnie zrobić beta = alfa1 - alfa2

+1

Pozostałe odpowiedzi oznaczają to samo, ale są bardziej zwięzłe. – Ankur

Powiązane problemy