Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaFX中计算两条直线之间的夹角_Java_Javafx_Angle - Fatal编程技术网

在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草图和测试数据。