簡體   English   中英

計算 JavaFX 中兩條線之間的角度

[英]Calculating angle between two lines in JavaFX

我正在嘗試計算程序中兩條線之間的角度。 兩條線我都有他們的(x1, y1)(x2, y2) 第一行的x2y2與第二行的x1y1相同。

我正在使用 JavaFX 庫中的Point2D

我需要計算角度才能知道轉向的方向-> 例如寫“左轉”或“右轉”。 我知道哪一點是我的起點、中點和終點。

我已經嘗試了所有可以在網上找到的方法,但沒有一個有效。 我總是得到 0.0 或 180 度。

我想要一種始終采用順時針角度從第 1 行(或逆時針)出來的方法,無論它在坐標系中是向上還是向下或從左到右。

我一直在閱讀有關Math.atan2 function 的信息,但我不明白如何解釋結果,或者它是否適用於我的問題。

這就是我現在正在嘗試的:

    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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM