2010-02-26 169 views
14

给定P1和P2,我怎样才能得到从P1到P2的角度?谢谢计算2点的角度

+9

要成为一个学究,两点没有它们之间的角度。然而,两个向量可以。看点产品,看看你能从那里得到什么。 – GManNickG 2010-02-26 04:27:46

+1

我相信OP意味着连接P1和P2的线与x轴形成的角度。至少,这就是选择的答案。 – 2013-08-23 11:21:12

回答

33

这只是float angle = atan2(p1.y - p2.y, p1.x - p2.x)

当然的返回类型为弧度,如果你需要它以度为只是做angle * 180/PI

6

好的记得高中触发。这是我得到的。

两个点分别是A(X1,Y1)和B(x2,y2)

我假设你想要的两个点和原点O(0,0)之间的角度。

那么每个点都会形成一个由其高度,底部和斜边限定的三角形,所以您可以获得两个角度α1和α2。这个想法是找到每一个,并通过做beta = alpha1 - alpha2来计算所需的角度beta,其中alpha1是alpha1> alpha2。

计算α1 = inv_tan(Y1/X1)和 α2 = inv_tan(Y2/X2)

然后做测试=α1 - α2

+1

其他答案相同,但更简洁。 – Ankur 2010-02-26 04:34:31