两点之间的角度

时间:2014-07-27 21:17:31

标签: java math trigonometry

我需要在平面上的两个点之间获得角度(x,y),例如我有点A和B,点A有方向(90),我怎么能计算A点和B点之间的角度在Java?

这是一张图片,例如:

enter image description here

1 个答案:

答案 0 :(得分:4)

Math.toDegrees(Math.atan(Math.abs(pointBY - pointAY), Math.abs(pointBX - pointAX)));

这称为反正切函数,以根据直角三角形的相对和相邻边的长度找到角度。但是,您应该添加以下if语句:

if(!(pointAX == pointBX || pointAY == pointBY))
{
angle = Math.toDegrees(Math.atan(Math.abs(pointBY - pointAY), Math.abs(pointBX - pointAX)));
}

否则,您可能会导致异常,因为如果角度为90度或0度,则tan函数会崩溃。

pointAXpointBX是点的X坐标,而pointAYpointBY是点的Y坐标。

此函数找到坐标之间差异的绝对值(所以从两个点形成的直角三角形的相对和相邻边的长度)然后对它们执行反tan函数,找到角度。