1

我有一个 1000x1000 的网格,中心有一个固定点 (p1) 和一个可变点 (p2)。如何以度为单位计算以红色表示的角度?垂直的蓝线将始终固定为 0 度。

图表

提前谢谢了。

4

3 回答 3

1

您可以使用以下公式计算角度:

if(x>0)
    angle = cos^-1(y/(sqrt(x^2+y^2))
else 
    angle = 180 + cos^-1(y/(sqrt(x^2+y^2))

其中是和x之间的水平距离,是垂直距离。p1p2y

于 2012-10-11T18:44:46.750 回答
1

一些提示可以指导您理解为什么您已经看到/将看到的解决方案有效......

让 p2 坐在网格上的 (x,y) 位置;p2 在 x 轴上或 p2 在 y 轴上的投影是多少?

p1在哪里?

如何确定坐标轴上两点之间的距离?

毕达哥拉斯会说连接 p1 和 p2 的线的长度是多少?

您知道哪些三角函数事实将三角形的边与角联系起来?

如果我们知道 cos(x) = a,那么 x = ...?

于 2012-10-11T18:55:25.197 回答
0

arctan(p2.y/p2.x) + 90适用于左上象限。根据您想要计算其他象限的方式,您可以使用相同的公式或使用倒数作为abs(result - 180)

于 2012-10-11T18:44:35.330 回答