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