在JavaFX中计算两条直线之间的夹角
我试图在我的程序中计算两条线之间的角度。我有两行的在JavaFX中计算两条直线之间的夹角,java,javafx,angle,Java,Javafx,Angle,我试图在我的程序中计算两条线之间的角度。我有两行的(x1,y1)和(x2,y2)。第一行的x2和y2与第二行的x1和y1相同 我正在使用JavaFX库中的Point2D 我需要计算角度以便知道转向的方向->例如写“左转”或“右转”。我知道哪一点是我的起点、中点和终点 我已经尝试了所有我能在网上找到的方法,但没有一种有效。我总是得到0.0或180度 我想要一个方法,它总是以顺时针的角度从第1行开始(或逆时针),不管它在坐标系中是向上还是向下,还是从左到右 我一直在读关于Math.atan2函数的书
(x1,y1)
和(x2,y2)
。第一行的x2
和y2
与第二行的x1
和y1
相同
我正在使用JavaFX库中的Point2D
我需要计算角度以便知道转向的方向->例如写“左转”或“右转”。我知道哪一点是我的起点、中点和终点
我已经尝试了所有我能在网上找到的方法,但没有一种有效。我总是得到0.0或180度
我想要一个方法,它总是以顺时针的角度从第1行开始(或逆时针),不管它在坐标系中是向上还是向下,还是从左到右
我一直在读关于Math.atan2
函数的书,但我不知道如何解释结果,或者它是否对我的问题有效
这就是我现在正在尝试的:
Point2D vectorFrom = new Point2D(c.getX2() - c.getX1(), - (c.getY2() -
c.getY1()));
Point2D vectorTo = new Point2D(n.getX2() - n.getX1(), - (n.getY2() -
n.getY1()));
double direction1 = Math.atan2(vectorFrom.getX(), vectorFrom.getY());
double direction2 = Math.atan2(vectorTo.getX(), vectorTo.getY();
double angle = direction2 - direction1;`
atan2方法允许计算您选择的线段与水平轴之间的角度,因此如果您输入一些绝对值,它可能会按原样工作。否则,您可以使用Point2D方法
vector1.angle(vector2)
,该方法提供两个向量之间的角度
给你
double angle=vectorFrom.angle(vectorTo)
请告诉我们你到底试过什么。您可能会发现以下内容很有帮助:您好,谢谢,我现在编辑了我的问题,以显示我的最新尝试。:)“我想要一种方法,它总是以从第1行开始的顺时针角度(或逆时针方向)为准,不管它在坐标系中是向上还是向下,还是从左到右。”这不是很清楚。考虑ADIN草图和测试数据。