Math 找到两个点之间相对于水平轴的角度?

Math 找到两个点之间相对于水平轴的角度?,math,Math,我有两点,一点总是在原点(0,0),另一点可以在世界上任何其他地方。我想找出它们之间的角度,相对于水平轴 | 2 | / | / | / | / |/ a ---1-------------- (horizontal axis) | a = angle (~50 degrees, counter clockwise) 在上面的例子中,我将构造一个直角三角形,并使用sohcah

我有两点,一点总是在原点(0,0),另一点可以在世界上任何其他地方。我想找出它们之间的角度,相对于水平轴

     |     2
     |    /
     |   / 
     |  /  
     | /     
     |/ a  
  ---1-------------- (horizontal axis)
     |

  a = angle (~50 degrees, counter clockwise)
在上面的例子中,我将构造一个直角三角形,并使用sohcahtoa计算出我想要的缺少的角度,但当第二个点位于不同的象限时,它会变得有点难看,如本例所示:

2    |
\    |
 \   |
  \  |
   \a|a   
    \|a
  ---1--------------
     |
     |

  a = angle (~135, counter clockwise)
根据第二个点所在的象限,我最终得到了一系列不同的情况。我想一定有一个更简单、更普遍的解决方案。这有点像试图找到圆边缘上的点与其中心之间的角度,相对于原点的水平轴


做这件事的好方法是什么?

大多数编程语言/API都提供了一个函数,可以找到角度并考虑象限。使用它吧。

大多数编程语言/API都提供了一个函数,可以找到角度并考虑象限。使用它。

首先,我们想找到连接两点的直线方程:

设p=(x0,y0)为第二点。 如果x=0,则答案为90度。 否则,设m为y0/x0

y=m(x-x0)+y0

m的tg^-1(即arctg)是角度


还请注意,如果(x0,y0)=(0,0),则角度未定义

首先,我们希望找到连接两点的直线方程:

设p=(x0,y0)为第二点。 如果x=0,则答案为90度。 否则,设m为y0/x0

y=m(x-x0)+y0

m的tg^-1(即arctg)是角度

还请注意,如果(x0,y0)=(0,0),则角度未定义