我们正在研究一个在二维空间进行计算的库。然而,二维坐标系统的“自然”解释是,增加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轴缩小为负值? –