![](/img/trans.png)
[英]Calculating the angle between two lines without having to calculate the slope? (Java)
[英]Calculating angle between two lines in JavaFX
我正在嘗試計算程序中兩條線之間的角度。 兩條線我都有他們的(x1, y1)
和(x2, y2)
。 第一行的x2
和y2
與第二行的x1
和y1
相同。
我正在使用 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.