在JavaFX中计算两条线之间的角度

问题描述 投票:-1回答:1

我想在我的程序中计算两条线之间的角度。我有它们的 (x1, y1)(x2, y2) 为两行。第一行的 x2y2,与第二行中的 x1y1.

我使用的是 Point2D 的JavaFX库。

我需要计算角度,以便知道该往哪边转->例如写 "向左转 "或 "向右转"。我知道哪个点是我的起点、中点和终点。

我试过了我在网上能找到的所有方法,但都没有用。我总是得到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;`
java javafx angle
1个回答
0
投票

atan2方法允许计算你所选择的线段和水平轴之间的角度,所以如果你放一些绝对值,它可能会像现在这样工作。vector1.angle(vector2) 的角度,得到两个向量之间的角度,从而得到

double angle=vectorFrom.angle(vectorTo)
© www.soinside.com 2019 - 2024. All rights reserved.