类 Rectangle2D
- java.lang.Object
-
- com.supermap.data.Rectangle2D
-
public class Rectangle2D extends java.lang.Object矩形类。用来表示坐标值为双精度的矩形对象,即其左边界坐标值、下边界坐标值、右边界坐标值、上边界坐标值均为双精度类型,其中左边界坐标值小于等于右边界坐标值,下边界坐标值小于等于上边界坐标值。
该类的对象通常用于确定范围,可用来表示几何对象的最小外接矩形、地图窗口的可视范围,数据集的范围等,另外在进行矩形选择,矩形查询等时也会用到此类的对象。
最通常的构造矩形对象的方法为用指定的左边界坐标值、下边界坐标值、右边界坐标值、上边界坐标值来构造;使用默认构造函数构造矩形对象为一个空对象,即左边界坐标值、下边界坐标值、右边界坐标值和上边界坐标值均为 -1.7976931348623157e+308,另外还可以通过给定左下角点和右上角点的方式,以及给定左下角点和矩形宽度和高度的方式来构造新的矩形对象。
该类提供了与矩形对象相关的关系的判断,以及返回矩形对象之间的交集和并集的方法。使用该类提供的方法,您还可以对矩形对象进行缩放和平移,以及对已有矩形对象的边界坐标值采用某种取整方法来返回边界坐标值为整数的新的矩形对象。
-
-
构造器概要
构造器 构造器和说明 Rectangle2D()构造一个新的 Rectangle2D 对象,其坐标值均为 -1.7976931348623157e+308。Rectangle2D(double left, double bottom, double right, double top)根据指定的参数来构造一个 Rectangle2D 的新对象。Rectangle2D(Point2D leftBottom, double width, double height)根据指定的参数来构造一个 Rectangle2D 的新对象。Rectangle2D(Point2D leftBottom, Point2D rightTop)根据指定的参数来构造一个 Rectangle2D 的新对象。Rectangle2D(Point2D center, Size2D size)根据指定的参数来构造一个 Rectangle2D 的新对象。Rectangle2D(Rectangle2D rect)根据给定的 Rectangle2D 对象构造一个与其完全相同的新对象。
-
方法概要
所有方法 静态方法 实例方法 具体方法 限定符和类型 方法和说明 static Rectangle2Dceiling(Rectangle2D rect)分别取大于或等于指定矩形对象的左边界的 X 坐标,上边界的 Y 坐标,右边界的 X 坐标和下边界的 Y 坐标的最小整数值,并以这些整数值构造一个新的矩形对象返回。Rectangle2Dclone()返回当前 Rectangle2D 对象的一个拷贝。booleancontains(double x, double y)判定指定坐标构成的点是否包含在此矩形内。booleancontains(Point2D pt)判定指定的点是否包含在此矩形内。booleancontains(Rectangle2D rect)判定指定的矩形区域是否完全包含在此矩形内。booleanequals(java.lang.Object obj)重写基类的equals方法booleanequals(Rectangle2D rect)判定此矩形对象是否与指定的矩形对象相等,即有相同的边界坐标值。static Rectangle2Dfloor(Rectangle2D rect)返回一个矩形对象,其左边界的 X 坐标,上边界的 Y 坐标,右边界的 X 坐标和下边界的 Y 坐标值是不大于指定矩形对象相应坐标值的最大整数值。doublegetBottom()返回此矩形对象下边界的坐标值。Point2DgetCenter()返回矩形对象的中心点,其 x 坐标值为(左边界坐标值+右边界坐标值)/2,y 坐标值为(上边界坐标值+下边界坐标值)/2。static Rectangle2DgetEMPTY()返回一个空的矩形对象,其左边界坐标值、下边界坐标值、右边界坐标值和上边界坐标值均为 -1.7976931348623157e+308。doublegetHeight()返回此矩形对象的高度,其值为上边界坐标值与下边界坐标值之差。doublegetLeft()返回此矩形对象左边界的坐标值。doublegetRight()返回此矩形对象右边界的坐标值。doublegetTop()返回此矩形对象上边界的坐标值。doublegetWidth()返回此矩形对象的宽度,其值为右边界坐标值与左边界值之差。inthashCode()因为重写了基类的equals方法,因此要重写hashcode,否则在key-value中contains方法 会发生错误booleanhasIntersection(Rectangle2D rect)判断此矩形与指定矩形是否有交集。voidinflate(double x, double y)该方法在垂直和水平方向对此矩形进行缩放。voidintersect(Rectangle2D rect)用此矩形与指定矩形的交集替换此矩形。booleanisEmpty()判断此矩形对象是否为空,即其左边界坐标值、下边界坐标值、右边界坐标值和上边界坐标值是否都为 -1.7976931348623157e+308。voidoffset(double dx, double dy)此方法将此矩形在 x 方向平移 dx,在y方向平移 dy。static Rectangle2Dround(Rectangle2D rect)对指定矩形对象的左边界的 X 坐标,上边界的 Y 坐标,右边界的 X 坐标和下边界的 Y 坐标值进行四舍五入处理,并以这些整数值构造一个新的矩形对象返回。voidsetBottom(double value)设置此矩形对象下边界的纵坐标值。voidsetLeft(double value)设置此矩形对象左边界的坐标值。voidsetRight(double value)设置此矩形对象右边界的坐标值。voidsetTop(double value)设置此矩形对象上边界的坐标值。java.lang.StringtoString()返回一个表示此矩形对象的坐标的格式化字符串,格式为"Left=,Bottom=,Right=,Top="。voidunion(Rectangle2D rect)用包含此矩形与指定矩形并集的最小矩形替换此矩形。
-
-
-
构造器详细资料
-
Rectangle2D
public Rectangle2D()
构造一个新的 Rectangle2D 对象,其坐标值均为 -1.7976931348623157e+308。
-
Rectangle2D
public Rectangle2D(Rectangle2D rect)
根据给定的 Rectangle2D 对象构造一个与其完全相同的新对象。- 参数:
rect- 指定的 Rectangle2D 对象。
-
Rectangle2D
public Rectangle2D(Point2D leftBottom, double width, double height)
根据指定的参数来构造一个 Rectangle2D 的新对象。- 参数:
leftBottom- 矩形的左下角点坐标。width- 矩形的宽度。height- 矩形的高度。
-
Rectangle2D
public Rectangle2D(Point2D leftBottom, Point2D rightTop)
根据指定的参数来构造一个 Rectangle2D 的新对象。- 参数:
leftBottom- 左下角点。rightTop- 右上角点。
-
Rectangle2D
public Rectangle2D(double left, double bottom, double right, double top)根据指定的参数来构造一个 Rectangle2D 的新对象。- 参数:
left- 左边界的 X 坐标。bottom- 底边的 Y 坐标。right- 右边界的 X 坐标。top- 顶边的 Y 坐标。
-
-
方法详细资料
-
getEMPTY
public static final Rectangle2D getEMPTY()
返回一个空的矩形对象,其左边界坐标值、下边界坐标值、右边界坐标值和上边界坐标值均为 -1.7976931348623157e+308。- 返回:
- 一个空的 Rectangle2D 对象。
-
isEmpty
public boolean isEmpty()
判断此矩形对象是否为空,即其左边界坐标值、下边界坐标值、右边界坐标值和上边界坐标值是否都为 -1.7976931348623157e+308。关于默认零值判断精度的详细信息请参见Environment类。- 返回:
- 当矩形对象的左边界的 X 坐标,底边的 Y 坐标,右边界的 X 坐标和顶边的 Y 坐标均为 -1.7976931348623157e+308 时,返回 true, 否则返回 false。
- Default:
- 默认值为 true。
-
getCenter
public Point2D getCenter()
返回矩形对象的中心点,其 x 坐标值为(左边界坐标值+右边界坐标值)/2,y 坐标值为(上边界坐标值+下边界坐标值)/2。- 返回:
- 表示矩形中心点的
Point2D对象。 - Default:
- 默认值为 {X = -Infinity,Y = -Infinity}。
-
getTop
public double getTop()
返回此矩形对象上边界的坐标值。- 返回:
- 此矩形对象上边界的坐标值。
- Default:
- 默认值为 -1.79769313486232E+308。
-
setTop
public void setTop(double value)
设置此矩形对象上边界的坐标值。- 参数:
value- 此矩形对象上边界的坐标值。
-
getBottom
public double getBottom()
返回此矩形对象下边界的坐标值。- 返回:
- 此矩形对象下边界的坐标值。
- Default:
- 默认值为 -1.7976931348623157e+308。
-
setBottom
public void setBottom(double value)
设置此矩形对象下边界的纵坐标值。- 参数:
value- 此矩形对象下边界的坐标值。
-
getLeft
public double getLeft()
返回此矩形对象左边界的坐标值。- 返回:
- 此矩形对象左边界的坐标值。
- Default:
- 默认值为 -1.79769313486232E+308。
-
setLeft
public void setLeft(double value)
设置此矩形对象左边界的坐标值。- 参数:
value- 此矩形对象左边界的坐标值。
-
getRight
public double getRight()
返回此矩形对象右边界的坐标值。- 返回:
- 此矩形对象右边界的坐标值。
- Default:
- 默认值为 -1.79769313486232E+308。
-
setRight
public void setRight(double value)
设置此矩形对象右边界的坐标值。- 参数:
value- 此矩形对象右边界的坐标值。
-
getWidth
public double getWidth()
返回此矩形对象的宽度,其值为右边界坐标值与左边界值之差。- 返回:
- 此矩形对象的宽度。
- Default:
- 默认值为 -1.79769313486232E+308。
-
getHeight
public double getHeight()
返回此矩形对象的高度,其值为上边界坐标值与下边界坐标值之差。- 返回:
- 此矩形对象的高度。
- Default:
- 默认值为 0。
-
clone
public Rectangle2D clone()
返回当前 Rectangle2D 对象的一个拷贝。- 覆盖:
clone在类中java.lang.Object- 返回:
- 通过克隆操作得到的 Rectangle2D 对象。
-
ceiling
public static Rectangle2D ceiling(Rectangle2D rect)
分别取大于或等于指定矩形对象的左边界的 X 坐标,上边界的 Y 坐标,右边界的 X 坐标和下边界的 Y 坐标的最小整数值,并以这些整数值构造一个新的矩形对象返回。- 参数:
rect- 要转换的 Rectanlge2D。- 返回:
- 此方法转换得到的 Rectangle2D。
-
floor
public static Rectangle2D floor(Rectangle2D rect)
返回一个矩形对象,其左边界的 X 坐标,上边界的 Y 坐标,右边界的 X 坐标和下边界的 Y 坐标值是不大于指定矩形对象相应坐标值的最大整数值。- 参数:
rect- 要转换的 Rectangle2D。- 返回:
- 此方法转换得到的 Rectangle2D。
-
round
public static Rectangle2D round(Rectangle2D rect)
对指定矩形对象的左边界的 X 坐标,上边界的 Y 坐标,右边界的 X 坐标和下边界的 Y 坐标值进行四舍五入处理,并以这些整数值构造一个新的矩形对象返回。- 参数:
rect- 要转换的 Rectangle2D。- 返回:
- 此方法转换得到的 Rectangle2D。
-
contains
public boolean contains(Point2D pt)
判定指定的点是否包含在此矩形内。当点在矩形内部和边界上时,均认为其包含在矩形内。- 参数:
pt- 要测试的 Point2D。- 返回:
- 如果指定的点在此矩形内部和边界上时,此方法将返回 true;否则将返回 false。
-
contains
public boolean contains(Rectangle2D rect)
判定指定的矩形区域是否完全包含在此矩形内。当指定矩形在此矩形内部,或与此矩形重合时,均认为其完全包含在此矩形内。- 参数:
rect- 要测试的 Rectangle2D。- 返回:
- 如果指定的矩形在此矩形内部,或与此矩形重合时, 此方法将返回 true;否则将返回 false。
-
contains
public boolean contains(double x, double y)判定指定坐标构成的点是否包含在此矩形内。当点在矩形内部和边界上时,均认为其包含在矩形内。- 参数:
x- 要测试的 X 坐标。y- 要测试的 Y 坐标。- 返回:
- 如果指定坐标构成的点在此矩形内部和边界上时,此方法将返回 true;否则将返回 false。
-
equals
public boolean equals(Rectangle2D rect)
判定此矩形对象是否与指定的矩形对象相等,即有相同的边界坐标值。注意其判定精度为零值判断精度。关于更多零值判断精度的信息,请参见Environment类。- 参数:
rect- 要测试的 Rectangle2D。- 返回:
- 如果指定的矩形与此 Rectangle2D 的对应边界坐标值都相等,此方法将返回 true;否则将返回 false。
-
inflate
public void inflate(double x, double y)该方法在垂直和水平方向对此矩形进行缩放。新的左边界坐标值=Min(原始左边界坐标值-dx,原始右边界坐标值+dx);
新的下边界坐标值=Min(原始上边界坐标值+dy,原始下边界坐标值-dy);
新的右边界坐标值=Max(原始左边界坐标值-dx,原始右边界坐标值+dx);
新的上边界坐标值=Max(原始上边界坐标值+dy,原始下边界坐标值-dy);
其中心点保持不变。
如左图所示,实线的矩形经缩放处理后变为虚框的矩形;若 dx,dy 为负,则虚线的矩形经缩放处理后变为实线的矩形。

当 dx,dy 为负,且|dx|大于此矩形的宽度,|dy|大于此矩形的高度时,缩放之后的原始左边界将变为新的右边界, 而原始上边界将变为新的下边界,以此内推,如右图所示,实线的矩形经缩放后变为虚框的矩形。
- 参数:
x- 此 Rectangle2D 结构的水平缩放量。y- 此 Rectangle2D 结构的垂直缩放量。
-
intersect
public void intersect(Rectangle2D rect)
用此矩形与指定矩形的交集替换此矩形。若此矩形与指定矩形没有交集,此矩形将变为一个空矩形对象。- 参数:
rect- 用其进行相交操作的矩形。
-
hasIntersection
public boolean hasIntersection(Rectangle2D rect)
判断此矩形与指定矩形是否有交集。当此矩形与指定的矩形有公共点或公共边时,认为其有交集。- 参数:
rect- 要测试的矩形。- 返回:
- 如果两个矩形有交集,则此方法返回 true。
-
offset
public void offset(double dx, double dy)此方法将此矩形在 x 方向平移 dx,在y方向平移 dy。新的左边界坐标值=原始左边界坐标值+dx;
新的下边界坐标值=原始下边界坐标值+dy;
新的右边界坐标值=原始右边界坐标值+dx;
新的上边界坐标值=原始上边界坐标值+dy。
如图所示为一个矩形平移后的效果,注意矩形的大小未发生变化。

- 参数:
dx- 水平偏移该位置的量。dy- 垂直偏移该位置的量。
-
toString
public java.lang.String toString()
返回一个表示此矩形对象的坐标的格式化字符串,格式为"Left=,Bottom=,Right=,Top="。- 覆盖:
toString在类中java.lang.Object- 返回:
- 表示此 Rectangle2D 的字符串。
-
union
public void union(Rectangle2D rect)
用包含此矩形与指定矩形并集的最小矩形替换此矩形。- 参数:
rect- 要与当前矩形求并集的矩形。
-
hashCode
public int hashCode()
因为重写了基类的equals方法,因此要重写hashcode,否则在key-value中contains方法 会发生错误- 覆盖:
hashCode在类中java.lang.Object- 返回:
- int
-
equals
public boolean equals(java.lang.Object obj)
重写基类的equals方法- 覆盖:
equals在类中java.lang.Object- 参数:
obj- Object- 返回:
- boolean
-
-