java.awt.geom

接口
异常
java.lang.Object
  继承者 java.awt.geom.RectangularShape
      继承者 java.awt.geom.Rectangle2D
所有已实现的接口:
Shape, Cloneable
直接已知子类:
Rectangle, Rectangle2D.Double, Rectangle2D.Float

public abstract class Rectangle2D
     
extends RectangularShape

Rectangle2D 类描述通过位置 (x,y) 和尺寸 (w x h) 定义的矩形。

此类是所有存储 2D 矩形的对象的惟一抽象超类。坐标的实际存储表示形式由子类决定。

从以下版本开始:
1.2

嵌套类摘要
static class Rectangle2D.Double
          Double 类定义一个在 double 坐标中指定的矩形。
static class Rectangle2D.Float
          Float 类定义一个在 float 坐标中指定的矩形。
 
字段摘要
static int OUT_BOTTOM
          指示点位于此 Rectangle2D 下方的位掩码。
static int OUT_LEFT
          指示点位于此 Rectangle2D 左边的位掩码。
static int OUT_RIGHT
          指示点位于此 Rectangle2D 右边的位掩码。
static int OUT_TOP
          指示点位于此 Rectangle2D 上方的位掩码。
 
构造方法摘要
protected Rectangle2D()
          这是一个不可直接实例化的抽象类。
 
方法摘要
 void add(double newx, double newy)
          将由 double 精度参数 newxnewy 指定的点添加到此 Rectangle2D 中。
 void add(Point2D pt)
          将 Point2D 对象 pt 添加到此 Rectangle2D 中。
 void add(Rectangle2D r)
          将 Rectangle2D 对象添加到此 Rectangle2D 中。
 boolean contains(double x, double y)
          测试指定坐标是否在 Shape 的边界内。
 boolean contains(double x, double y, double w, double h)
          测试 Shape 内部是否完全包含指定矩形区域。
abstract  Rectangle2D createIntersection(Rectangle2D r)
          返回一个新的 Rectangle2D 对象,它表示此 Rectangle2D 与指定 Rectangle2D 的交集。
abstract  Rectangle2D createUnion(Rectangle2D r)
          返回一个新的 Rectangle2D 对象,它表示此 Rectangle2D 与指定 Rectangle2D 的并集。
 boolean equals(Object obj)
          确定指定的 Object 是否与此 Rectangle2D 相等。
 Rectangle2D getBounds2D()
          返回一个高精度的、比 getBounds 方法更准确的 Shape 边界框。
 PathIterator getPathIterator(AffineTransform at)
          返回定义此 Rectangle2D 边界的迭代对象。
 PathIterator getPathIterator(AffineTransform at, double flatness)
          返回定义变平的 Rectangle2D 边界的迭代对象。
 int hashCode()
          返回此 Rectangle2D 的哈希码。
static void intersect(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)
          将指定的一对源 Rectangle2D 对象相交,并将结果置于指定的目标 Rectangle2D 对象中。
 boolean intersects(double x, double y, double w, double h)
          测试 Shape 内部是否与指定矩形区域的内部相交。
 boolean intersectsLine(double x1, double y1, double x2, double y2)
          测试指定线段是否与此 Rectangle2D 的内部相交。
 boolean intersectsLine(Line2D l)
          测试指定的线段是否与此 Rectangle2D 的内部相交。
abstract  int outcode(double x, double y)
          确定指定坐标相对于此 Rectangle2D 的位置。
 int outcode(Point2D p)
          确定指定 Point2D 相对于此 Rectangle2D 的位置。
 void setFrame(double x, double y, double w, double h)
          将此 Rectangle2D 外部边界的位置和大小设置为指定矩形值。
abstract  void setRect(double x, double y, double w, double h)
          将此 Rectangle2D 的位置和大小设置为指定的 double 值。
 void setRect(Rectangle2D r)
          将此 Rectangle2D 设置为与指定的 Rectangle2D 相同。
static void union(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)
          将一对源 Rectangle2D 对象合并,并将结果置于指定的目标 Rectangle2D 对象中。
 
从类 java.awt.geom.RectangularShape 继承的方法
clone, contains, contains, getBounds, getCenterX, getCenterY, getFrame, getHeight, getMaxX, getMaxY, getMinX, getMinY, getWidth, getX, getY, intersects, isEmpty, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonal
 
从类 java.lang.Object 继承的方法
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

OUT_LEFT

public static final int OUT_LEFT
指示点位于此 Rectangle2D 左边的位掩码。

从以下版本开始:
1.2
另请参见:
常量字段值

OUT_TOP

public static final int OUT_TOP
指示点位于此 Rectangle2D 上方的位掩码。

从以下版本开始:
1.2
另请参见:
常量字段值

OUT_RIGHT

public static final int OUT_RIGHT
指示点位于此 Rectangle2D 右边的位掩码。

从以下版本开始:
1.2
另请参见:
常量字段值

OUT_BOTTOM

public static final int OUT_BOTTOM
指示点位于此 Rectangle2D 下方的位掩码。

从以下版本开始:
1.2
另请参见:
常量字段值
构造方法详细信息

Rectangle2D

protected Rectangle2D()
这是一个不可直接实例化的抽象类。特定于类型的实现子类可用于实例化,并提供用于存储满足以下各种存取方法所需信息的多种格式。

从以下版本开始:
1.2
另请参见:
Rectangle2D.Float, Rectangle2D.Double, Rectangle
方法详细信息

setRect

public abstract void setRect(double x,
                             double y,
                             double w,
                             double h)
将此 Rectangle2D 的位置和大小设置为指定的 double 值。

参数:
x - 此 Rectangle2D 左上角的 X 坐标
y - 此 Rectangle2D 左上角的 Y 坐标
w - 此 Rectangle2D 的宽度
h - 此 Rectangle2D 的高度
从以下版本开始:
1.2

setRect

public void setRect(Rectangle2D r)
将此 Rectangle2D 设置为与指定的 Rectangle2D 相同。

参数:
r - 指定的 Rectangle2D
从以下版本开始:
1.2

intersectsLine

public boolean intersectsLine(double x1,
                              double y1,
                              double x2,
                              double y2)
测试指定线段是否与此 Rectangle2D 的内部相交。

参数:
x1 - 指定线段起始点的 X 坐标
y1 - 指定线段起始点的 Y 坐标
x2 - 指定线段结束点的 X 坐标
y2 - 指定线段结束点的 Y 坐标
返回:
如果指定线段与此 Rectangle2D 的内部相交,则返回 true;否则返回 false
从以下版本开始:
1.2

intersectsLine

public boolean intersectsLine(Line2D l)
测试指定的线段是否与此 Rectangle2D 的内部相交。

参数:
l - 要测试是否与此 Rectangle2D 内部相交的指定 Line2D
返回:
如果指定 Line2D 与此 Rectangle2D 的内部相交,则返回 true;否则返回 false
从以下版本开始:
1.2

outcode

public abstract int outcode(double x,
                            double y)
确定指定坐标相对于此 Rectangle2D 的位置。此方法计算适当掩码值的二进制或 (OR),这些掩码值针对此 Rectangle2D 的每个边指示指定坐标是否在此 Rectangle2D 其余边缘的同一侧。

参数:
x - 指定的 X 坐标
y - 指定的 Y 坐标
返回:
所有适当外码的逻辑或。
从以下版本开始:
1.2
另请参见:
OUT_LEFT, OUT_TOP, OUT_RIGHT, OUT_BOTTOM

outcode

public int outcode(Point2D p)
确定指定 Point2D 相对于此 Rectangle2D 的位置。此方法计算适当掩码值的二进制或,这些值针对此 Rectangle2D 的每个边指示指定 Point2D 是否在此 Rectangle2D 其余边缘的同一侧。

参数:
p - 指定的 Point2D
返回:
所有适当外码的逻辑或。
从以下版本开始:
1.2
另请参见:
OUT_LEFT, OUT_TOP, OUT_RIGHT, OUT_BOTTOM

setFrame

public void setFrame(double x,
                     double y,
                     double w,
                     double h)
将此 Rectangle2D 外部边界的位置和大小设置为指定矩形值。

指定者:
RectangularShape 中的 setFrame
参数:
x - 此 Rectangle2D 左上角的 X 坐标
y - 此 Rectangle2D 左上角的 Y 坐标
w - 此 Rectangle2D 的宽度
h - 此 Rectangle2D 的高度
从以下版本开始:
1.2
另请参见:
RectangularShape.getFrame()

getBounds2D

public Rectangle2D getBounds2D()
返回一个高精度的、比 getBounds 方法更准确的 Shape 边界框。注意,不保证返回的 Rectangle2D 是包围 Shape 的最小边界框,只保证 Shape 完全位于指示的 Rectangle2D 中。此方法返回的边界框通常比 getBounds 方法返回的更紧密,而且永远不会因为溢出问题而出错,因为返回值可以是一个使用双精度值存储尺寸的 Rectangle2D 实例。

返回:
一个 Rectangle2D 实例,它是 Shape 的高精度边界框。
从以下版本开始:
1.2
另请参见:
Shape.getBounds()

contains

public boolean contains(double x,
                        double y)
测试指定坐标是否在 Shape 的边界内。

参数:
x - 要测试的指定的 X 坐标
y - 要测试的指定的 Y 坐标
返回:
如果指定坐标在 Shape 边界内,则返回 true;否则返回 false
从以下版本开始:
1.2

intersects

public boolean intersects(double x,
                          double y,
                          double w,
                          double h)
测试 Shape 内部是否与指定矩形区域的内部相交。如果任何一个点既包含在 Shape 内,又包含在指定矩形区域内,则认为矩形区域与 Shape 相交。

在下列情况下,Shape.intersects() 方法允许 Shape 实现谨慎地返回 true

  • 矩形区域与 Shape 相交的可能性很大,但是
  • 精确确定相交的计算代价太高。
这意味着对于某些 Shape,即使矩形区域没有与该 Shape 相交,此方法也可能返回 true。如果需要更精确的答案,由于 Area 类比大多数 Shape 对象更为准确地计算几何相交,因此可以使用该类。

参数:
x - 指定矩形区域左上角的 X 坐标
y - 指定矩形区域左上角的 Y 坐标
w - 指定矩形区域的宽度
h - 指定矩形区域的高度
返回:
如果 Shape 的内部区域与矩形的内部区域相交,或者相交的可能性很大且执行计算的代价太高,则返回 true;否则返回 false
从以下版本开始:
1.2
另请参见:
Area

contains

public boolean contains(double x,
                        double y,
                        double w,
                        double h)
测试 Shape 内部是否完全包含指定矩形区域。矩形区域内的所有坐标都必须位于 Shape 中,才可以认为整个矩形区域包含在 Shape中。

在下列情况下,Shape.contains() 方法允许 Shape 实现谨慎地返回 false

  • intersect 方法返回 true 并且
  • 计算 Shape 是否完全包含矩形区域的代价太高。
这意味着对于某些 Shape,即使 Shape 包含矩形区域,此方法也可能返回 false。如果需要更精确的答案,由于 Area 类比大多数 Shape 对象更为准确地执行几何计算,因此可以使用该类。

参数:
x - 指定矩形区域左上角的 X 坐标
y - 指定矩形区域左上角的 Y 坐标
w - 指定矩形区域的宽度
h - 指定矩形区域的高度
返回:
如果 Shape 内部完全包含指定矩形区域,则返回 true;否则,如果 Shape 包含矩形区域、 intersects 方法返回 true 且执行包含计算代价太高,则返回 false
从以下版本开始:
1.2
另请参见:
Area, Shape.intersects(double, double, double, double)

createIntersection

public abstract Rectangle2D createIntersection(Rectangle2D r)
返回一个新的 Rectangle2D 对象,它表示此 Rectangle2D 与指定 Rectangle2D 的交集。

参数:
r - 与此 Rectangle2D 相交的 Rectangle2D
返回:
同时被指定 Rectangle2D 和此 Rectangle2D 包含的最大 Rectangle2D
从以下版本开始:
1.2

intersect

public static void intersect(Rectangle2D src1,
                             Rectangle2D src2,
                             Rectangle2D dest)
将指定的一对源 Rectangle2D 对象相交,并将结果置于指定的目标 Rectangle2D 对象中。为了避免创建第三个 Rectangle2D 对象,将其中一个源矩形作为目标矩形也是可以的,但这样此方法将改写源矩形的初始点。

参数:
src1 - 要彼此相交的一对 Rectangle2D 对象中的第一个对象
src2 - 要彼此相交的一对 Rectangle2D 对象中的第二个对象
dest - 保存 src1src2 相交结果的 Rectangle2D
从以下版本开始:
1.2

createUnion

public abstract Rectangle2D createUnion(Rectangle2D r)
返回一个新的 Rectangle2D 对象,它表示此 Rectangle2D 与指定 Rectangle2D 的并集。

参数:
r - 与此 Rectangle2D 合并的 Rectangle2D
返回:
包含指定 Rectangle2D 和此 Rectangle2D 的最小 Rectangle2D
从以下版本开始:
1.2

union

public static void union(Rectangle2D src1,
                         Rectangle2D src2,
                         Rectangle2D dest)
将一对源 Rectangle2D 对象合并,并将结果置于指定的目标 Rectangle2D 对象中。为了避免创建第三个 Rectangle2D 对象,将其中一个源矩形作为目标矩形也是可以的,但这样此方法将改写源矩形的初始点。

参数:
src1 - 要彼此合并的一对 Rectangle2D 对象中的第一个对象
src2 - 要彼此合并的 Rectangle2D 对象中的第二个对象
dest - 保存 src1src2 合并结果的 Rectangle2D
从以下版本开始:
1.2

add

public void add(double newx,
                double newy)
将由 double 精度参数 newxnewy 指定的点添加到此 Rectangle2D 中。所得到的 Rectangle2D 是同时包含原始 Rectangle2D 和指定点的最小 Rectangle2D

在添加一个点后,以添加的点作为参数调用 contains 方法不一定返回 true。对于矩形的右边和底边上的点,contains 方法不返回 true。所以,如果添加的点落在放大的矩形的左边和底边上,则 contains 将对该点返回 false

参数:
newx - 新点的 X 坐标
newy - 新点的 Y 坐标
从以下版本开始:
1.2

add

public void add(Point2D pt)
Point2D 对象 pt 添加到此 Rectangle2D 中。所得到的 Rectangle2D 是同时包含原始 Rectangle2D 和指定的 Point2D 的最小的 Rectangle2D

在添加一个点后,以添加的点为参数调用 contains 方法不一定返回 true。对于矩形的右边和底部边界线上的点,contains 方法不返回 true。所以,如果添加的点落在放大的矩形的左边和底部边界线上,则 contains 将针对该点返回 false

参数:
pt - 添加到此 Rectangle2D 中的新 Point2D
从以下版本开始:
1.2

add

public void add(Rectangle2D r)
Rectangle2D 对象添加到此 Rectangle2D 中。得到的 Rectangle2D 是两个 Rectangle2D 对象的并集。

参数:
r - 要添加到此 Rectangle2D 中的 Rectangle2D
从以下版本开始:
1.2

getPathIterator

public PathIterator getPathIterator(AffineTransform at)
返回定义此 Rectangle2D 边界的迭代对象。此类的迭代器是多线程安全的,这意味着此 Rectangle2D 类保证对此 Rectangle2D 对象几何形状所作的修改不会影响该几何形状中正在进行的迭代。

参数:
at - 一个可选的 AffineTransform,用于在迭代中返回的坐标;如果需要未转换的坐标,则为 null
返回:
返回此 Rectangle2D 轮廓几何形状的 PathIterator 对象,一次一段。
从以下版本开始:
1.2

getPathIterator

public PathIterator getPathIterator(AffineTransform at,
                                    double flatness)
返回定义变平的 Rectangle2D 边界的迭代对象。因为矩形已经是平的,所以 flatness 参数将被忽略。此类的迭代器是多线程安全的,这意味着此 Rectangle2D 类保证对此 Rectangle2D 对象几何形状所作的修改不会影响该几何形状中正在进行的迭代。

指定者:
接口 Shape 中的 getPathIterator
覆盖:
RectangularShape 中的 getPathIterator
参数:
at - 一个可选 AffineTransform,用于在迭代中返回的坐标;如果需要未转换的坐标,则为 null
flatness - 用来近似曲线段的直线段偏离原始曲线上任一点的最大距离。因为矩形已经是平的,所以 flatness 参数将被忽略。
返回:
PathIterator 对象,该对象返回此 Rectangle2D 的轮廓的几何形状,一次一段。
从以下版本开始:
1.2

hashCode

public int hashCode()
返回此 Rectangle2D 的哈希码。

覆盖:
Object 中的 hashCode
返回:
Rectangle2D 对象的哈希码。
从以下版本开始:
1.2
另请参见:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object obj)
确定指定的 Object 是否与此 Rectangle2D 相等。如果指定的 ObjectRectangle2D 的实例并且位置和大小与此 Rectangle2D 相同,则其与此 Rectangle2D 相等。

覆盖:
Object 中的 equals
参数:
obj - 要与此 Rectangle2D 进行比较的 Object
返回:
如果 objRectangle2D 的实例并且与 Rectangle2D 具有相同值,则返回 true;否则返回 false
从以下版本开始:
1.2
另请参见:
Object.hashCode(), Hashtable