我們正在研究一個在二維空間進行計算的庫。然而,二維座標系統的「自然」解釋是,增加Y值代表較高的點,而座標則相反。這反映在Rectangle(10,100).maxY()
返回0,而數學家會預期它返回100.二維座標系:數學與屏幕
我們該如何正確處理這種差異?是否有另一個Java庫來做幾何計算?
我們正在研究一個在二維空間進行計算的庫。然而,二維座標系統的「自然」解釋是,增加Y值代表較高的點,而座標則相反。這反映在Rectangle(10,100).maxY()
返回0,而數學家會預期它返回100.二維座標系:數學與屏幕
我們該如何正確處理這種差異?是否有另一個Java庫來做幾何計算?
你應該在詢問之前嘗試一些事情。下面的代碼打印100,所以沒有問題:)
import java.awt.*;
public class A {
public static void main(String[] args) {
double maxX = new Rectangle(10, 100).getMaxY();
System.out.println("A::main: maxX = " + maxX);
}
}
我發現maxY
返回'最大的y座標,這正是直覺行爲。我感到困惑:只有在實際繪製它來屏幕對象時,「左上角」和「右下角」在形象化時只是慣例。
我會堅持手動轉換。您仍然需要轉換,爲什麼不將Y軸縮小爲負值? –