找到两个点之间的角度,分别对应于水平轴?

use*_*701 1 math

我有两个点,一个始终在原点(0,0),另一个可以在世界的任何其他地方.我想找到它们之间的角度,分别对应于水平轴.

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

  a = angle (~50 degrees, counter clockwise)
Run Code Online (Sandbox Code Playgroud)

在上面我将构造一个直角三角形并使用sohcahtoa来找出我想要的缺失角度,但是当第二个点位于不同的象限时它会变得有点难看,就像在这种情况下:

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

  a = angle (~135, counter clockwise)
Run Code Online (Sandbox Code Playgroud)

我最终得到了一堆不同的案例,具体取决于第二点的象限.我认为必须有一个更简单,更通用的解决方案.这有点像试图找到圆的边缘上的点与其中心之间的角度,相对于原点的水平轴.

这样做的好方法是什么?

Blu*_*eft 8

大多数编程语言/ API都提供了一个函数,atan2()它可以找到角度考虑象限.只是使用它.