求两点之间相对于横轴的夹角

  • 本文关键字:相对于 之间 两点 math
  • 更新时间 :
  • 英文 :


我有两个点,一个总是在原点(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提供了一个函数atan2(),该函数查找角度,并且考虑象限。

首先我们要找出连接两点的直线的方程:

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

y = m(x-x0) +y

tg^-1(即arctg) (m)为角度

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

最新更新