3

我对 Java 的 Rectangle 类有疑问。我想知道 rectangle.getX()和之间有什么区别rectangle.getMinX()。当我用谷歌搜索时,在 Java 文档中我读到了这个getX()

以双精度返回边界 Rectangle 的 X 坐标。

因为getMinX()我已经阅读了以下内容:

以双精度返回 Shape 的框架矩形的最小 X 坐标。

现在我想知道:如果对于 Rectangle,应该只有一个 X 坐标,怎么会有不同的 X 坐标:

new Rectangle(0,0,100,100) = p1(0,0)|p2(100,0)|p3(0,100)|p4(100,100).

我会理解 eggetMaxX()是否会类似于getX()+getWidth(),但那会getMinX()是什么?我对此感到非常困惑。

我只需要一个简短的解释,我将不胜感激。

4

2 回答 2

7

矩形定义为:(x 1 ,y 1 ),(x 2 ,y 2 )。出于我们的目的,让我们将 (x 1 ,y 1 ) 和矩形的左上角和 (x 2 ,y 2 ) 表示为右下角

rectangle.getX()返回 x 1,而rectangle.getMinX()返回 x k使得:对于X(x 坐标集)中的所有 x i ,x k <= x i。通过构造,矩形类定义 x 1使得 x 1 = x k,如源代码中所示:

public double getMinX() 
{
    return getX();
}

public double getX()
{
    return x;
}

并在构造函数中进一步解释:

Rectangle(int x, int y, int width, int height) 构造一个新的 Rectangle,其左上角指定为 (x,y),其宽度和高度由同名参数指定。

 public Rectangle(int x, int y, int width, int height) 
 {
     this.x = x;
     this.y = y;
     this.width = width;
     this.height = height;
 }

注意:其他构造函数调用上述构造函数。

于 2013-07-19T16:56:55.110 回答
2

你说的对。与一个Rectangle类,getMinX()是一回事getX()

当您查看OpenJDK 的源代码时Rectangle,您可以看到:

public double getMinX() {
    return getX();
}

老实说,我还没有在 OpenJDK 中找到此方法的替代方法。也许我在看错地方,我不确定。但是所有的形状(椭圆、圆弧等)都使用这个实现。奇特。

现在,我认为唯一的区别是名称和推荐的用法。他们都做同样的事情,但我会在不同的情况下使用其中一种:

  • getX()当我需要形状的位置时,一个点
  • getMinX()当我需要形状的左边界时
于 2013-07-19T16:53:58.510 回答