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

我想在我的程序中计算两条线之间的角度。我有它们的 (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;`

解决方案:

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

double angle=vectorFrom.angle(vectorTo)

给TA打赏
共{{data.count}}人
人已打赏
解决方案

在两个表上使用INNER JOIN时,如何让它返回表中的每一列。

2022-5-13 2:00:35

解决方案

为什么c++中字符数组和整数数组的基本属性有区别?

2022-5-13 2:00:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索