我有一个 1000x1000 的网格,中心有一个固定点 (p1) 和一个可变点 (p2)。如何以度为单位计算以红色表示的角度?垂直的蓝线将始终固定为 0 度。
提前谢谢了。
我有一个 1000x1000 的网格,中心有一个固定点 (p1) 和一个可变点 (p2)。如何以度为单位计算以红色表示的角度?垂直的蓝线将始终固定为 0 度。
提前谢谢了。
您可以使用以下公式计算角度:
if(x>0)
angle = cos^-1(y/(sqrt(x^2+y^2))
else
angle = 180 + cos^-1(y/(sqrt(x^2+y^2))
其中是和x
之间的水平距离,是垂直距离。p1
p2
y
一些提示可以指导您理解为什么您已经看到/将看到的解决方案有效......
让 p2 坐在网格上的 (x,y) 位置;p2 在 x 轴上或 p2 在 y 轴上的投影是多少?
p1在哪里?
如何确定坐标轴上两点之间的距离?
毕达哥拉斯会说连接 p1 和 p2 的线的长度是多少?
您知道哪些三角函数事实将三角形的边与角联系起来?
如果我们知道 cos(x) = a,那么 x = ...?
arctan(p2.y/p2.x) + 90
适用于左上象限。根据您想要计算其他象限的方式,您可以使用相同的公式或使用倒数作为abs(result - 180)