我需要在平面上的两个点之间获得角度(x,y),例如我有点A和B,点A有方向(90),我怎么能计算A点和B点之间的角度在Java?
这是一张图片,例如:
答案 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函数会崩溃。
pointAX
和pointBX
是点的X坐标,而pointAY
和pointBY
是点的Y坐标。
此函数找到坐标之间差异的绝对值(所以从两个点形成的直角三角形的相对和相邻边的长度)然后对它们执行反tan函数,找到角度。