我需要計算我自己的Point類的兩點之間的角度度數,點a應該是中心點。Java:以度爲單位計算兩個點之間的角度
方法:
public float getAngle(Point target) {
return (float) Math.toDegrees(Math.atan2(target.x - x, target.y - y));
}
測試1://返回45
Point a = new Point(0, 0);
System.out.println(a.getAngle(new Point(1, 1)));
測試2://返回-90,預期:270
Point a = new Point(0, 0);
System.out.println(a.getAngle(new Point(-1, 0)));
我如何轉換返回的結果爲0到359之間的數字?
只注意到ATAN2參數是按相反的順序:必須ATAN2(Y,X) – alexm 2012-04-02 03:01:41
我不知道哪裏出了問題,但我爲了能正常工作,相反的順序不會。 – Aich 2012-04-02 03:09:37
您只能測量三點之間的角度。你可能會認爲'(0,0)'或'(min(x1,x2),min(y1,y2))'是其中一個點,但你不能在兩點之間畫一個角度。 – 2012-04-02 07:16:30