java.lang.Object
java.awt.geom.RectangularShape
java.awt.geom.Rectangle2D
- 直接已知的子类:
-
Rectangle,Rectangle2D.Double,Rectangle2D.Float
Rectangle2D类描述了由位置(x,y)和尺寸(w x h)定义的矩形。
这个类只是所有存储2D矩形的对象的抽象超类。坐标的实际存储表示留给子类。
- 自从:
- 1.2
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classDouble类定义了一个使用双精度坐标指定的矩形。static classFloat类定义了一个使用浮点坐标指定的矩形。 -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int指示点位于此Rectangle2D下方的位掩码。static final int指示点位于此Rectangle2D左侧的位掩码。static final int指示点位于此Rectangle2D右侧的位掩码。static final int指示点位于此Rectangle2D上方的位掩码。 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidadd(double newx, double newy) 将由双精度参数newx和newy指定的点添加到此Rectangle2D中。void将Point2D对象pt添加到此Rectangle2D中。voidadd(Rectangle2D r) 将一个Rectangle2D对象添加到此Rectangle2D中。booleancontains(double x, double y) 测试指定的坐标是否在Shape的边界内,如内部定义所述。booleancontains(double x, double y, double w, double h) 测试Shape的内部是否完全包含指定的矩形区域。abstract Rectangle2D返回一个新的Rectangle2D对象,表示此Rectangle2D与指定Rectangle2D的交集。abstract Rectangle2D返回一个新的Rectangle2D对象,表示此Rectangle2D与指定Rectangle2D的并集。boolean确定指定的Object是否等于此Rectangle2D。返回Shape的边界框比getBounds方法更高精度和更准确的边界框。返回一个定义此Rectangle2D边界的迭代对象。getPathIterator(AffineTransform at, double flatness) 返回一个定义扁平化Rectangle2D边界的迭代对象。inthashCode()返回此Rectangle2D的哈希码。static voidintersect(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest) 相交指定源Rectangle2D对象的一对,并将结果放入指定目标Rectangle2D对象中。booleanintersects(double x, double y, double w, double h) 测试Shape的内部是否与指定矩形区域的内部相交。booleanintersectsLine(double x1, double y1, double x2, double y2) 测试指定的线段是否与此Rectangle2D的内部相交。boolean测试指定的线段是否与此Rectangle2D的内部相交。abstract intoutcode(double x, double y) 确定指定坐标相对于此Rectangle2D的位置。int确定指定的Point2D相对于此Rectangle2D的位置。voidsetFrame(double x, double y, double w, double h) 将此Rectangle2D的外部边界的位置和大小设置为指定的矩形值。abstract voidsetRect(double x, double y, double w, double h) 将此Rectangle2D的位置和大小设置为指定的double值。void将此Rectangle2D设置为与指定的Rectangle2D相同。static voidunion(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest) 将一对源Rectangle2D对象联合,并将结果放入指定目标Rectangle2D对象中。Methods declared in class 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
-
Field Details
-
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
- 另请参阅:
-
-
Constructor Details
-
Rectangle2D
protected Rectangle2D()这是一个无法直接实例化的抽象类。有特定类型的实现子类可用于实例化,并提供多种格式来存储满足下面各种访问器方法所需信息。- 自从:
- 1.2
- 另请参阅:
-
-
Method Details
-
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
将此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
测试指定的线段是否与此Rectangle2D的内部相交。- 参数:
-
l- 要测试是否与此Rectangle2D的内部相交的指定Line2D - 返回:
-
如果指定的
Line2D与此Rectangle2D的内部相交,则返回true;否则返回false。 - 自从:
- 1.2
-
outcode
public abstract int outcode(double x, double y) 确定指定坐标相对于此Rectangle2D的位置。此方法计算适当的掩码值的二进制OR,指示对于此Rectangle2D的每一边,指定的坐标是否与边的其余部分在同一侧。- 参数:
-
x- 指定的X坐标 -
y- 指定的Y坐标 - 返回:
- 所有适当外部代码的逻辑OR。
- 自从:
- 1.2
- 另请参阅:
-
outcode
- 参数:
-
p- 指定的Point2D - 返回:
- 所有适当外部代码的逻辑OR。
- 自从:
- 1.2
- 另请参阅:
-
setFrame
public void setFrame(double x, double y, double w, double h) 将此Rectangle2D的外部边界的位置和大小设置为指定的矩形值。- 指定者:
-
setFrame在类RectangularShape中 - 参数:
-
x- 此Rectangle2D的左上角的X坐标 -
y- 此Rectangle2D的左上角的Y坐标 -
w- 此Rectangle2D的宽度 -
h- 此Rectangle2D的高度 - 自版本:
- 1.2
- 参见:
-
getBounds2D
返回一个比getBounds方法更高精度和更准确的Shape的边界框。请注意,返回的Rectangle2D不一定是包围Shape的最小边界框,只是Shape完全位于指定的Rectangle2D内。此方法返回的边界框通常比getBounds方法返回的边界框更紧凑,并且不会因溢出问题而失败,因为返回值可以是使用双精度值存储尺寸的Rectangle2D的实例。请注意,内部定义的概念可能导致定义形状的轮廓上的点可能不被认为包含在返回的
bounds对象中,但只有在这些点也不被认为包含在原始shape中的情况下。如果一个
point根据contains(point)方法在shape内部,那么根据bounds的contains(point)方法,它必须在返回的Rectangle2D边界对象内部。具体来说:shape.contains(p)要求bounds.contains(p)如果一个
point不在shape内部,则它可能仍然包含在bounds对象中:bounds.contains(p)不意味着shape.contains(p)- 返回:
-
一个
Rectangle2D的实例,它是Shape的高精度边界框。 - 自版本:
- 1.2
- 参见:
-
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有很高的概率相交,但 - 准确确定此交集的计算代价过高。
Shapes,即使矩形区域与Shape不相交,此方法可能返回true。与大多数Shape对象相比,Area类执行更准确的几何相交计算,因此如果需要更精确的答案,则可以使用该类。- 参数:
-
x- 指定矩形区域左上角的X坐标 -
y- 指定矩形区域左上角的Y坐标 -
w- 指定矩形区域的宽度 -
h- 指定矩形区域的高度 - 返回:
-
如果
Shape的内部和矩形区域的内部相交,或者两者高度可能相交且计算交集的代价过高,则返回true;否则返回false。 - 自版本:
- 1.2
- 参见:
- 矩形区域和
-
contains
public boolean contains(double x, double y, double w, double h) 测试Shape的内部是否完全包含指定的矩形区域。所有位于矩形区域内部的坐标必须位于整个矩形区域内部才被认为包含在Shape内部。Shape.contains()方法允许Shape实现在以下情况下保守地返回false:intersect方法返回true且- 确定
Shape是否完全包含矩形区域的计算代价过高。
Shapes,即使intersect方法返回true,并且Shape包含矩形区域,此方法可能返回false。与大多数Shape对象相比,Area类执行更准确的几何计算,因此如果需要更精确的答案,则可以使用该类。- 参数:
-
x- 指定矩形区域左上角的X坐标 -
y- 指定矩形区域左上角的Y坐标 -
w- 指定矩形区域的宽度 -
h- 指定矩形区域的高度 - 返回:
-
如果
Shape的内部完全包含指定的矩形区域,则返回true;否则返回false,或者如果Shape包含矩形区域且intersect方法返回true且包含计算代价过高,则返回false。 - 自版本:
- 1.2
- 参见:
-
createIntersection
返回一个新的Rectangle2D对象,表示此Rectangle2D与指定Rectangle2D的交集。- 参数:
-
r- 与此Rectangle2D相交的Rectangle2D - 返回:
-
包含在指定
Rectangle2D和此Rectangle2D中的最大Rectangle2D。 - 自版本:
- 1.2
-
intersect
相交指定的源Rectangle2D对象对,并将结果放入指定的目标Rectangle2D对象中。源矩形之一也可以是目标,以避免创建第三个Rectangle2D对象,但在这种情况下,此源矩形的原始点将被此方法覆盖。- 参数:
-
src1- 要相交的一对Rectangle2D对象中的第一个 -
src2- 要相交的一对Rectangle2D对象中的第二个 -
dest- 包含src1和src2相交结果的Rectangle2D - 自版本:
- 1.2
-
createUnion
返回一个新的Rectangle2D对象,表示此Rectangle2D与指定Rectangle2D的并集。- 参数:
-
r- 与此Rectangle2D组合的Rectangle2D - 返回:
-
包含指定
Rectangle2D和此Rectangle2D的最小Rectangle2D。 - 自版本:
- 1.2
-
union
合并一对源Rectangle2D对象,并将结果放入指定的目标Rectangle2D对象中。源矩形之一也可以是目标,以避免创建第三个Rectangle2D对象,但在这种情况下,此源矩形的原始点将被此方法覆盖。- 参数:
-
src1- 要组合的一对Rectangle2D对象中的第一个 -
src2- 要组合的一对Rectangle2D对象中的第二个 -
dest- 包含src1和src2并集结果的Rectangle2D - 自版本:
- 1.2
-
add
public void add(double newx, double newy) 将由双精度参数newx和newy指定的点添加到此Rectangle2D中。结果的Rectangle2D是同时包含原始Rectangle2D和指定点的最小Rectangle2D。添加点后,使用添加的点作为参数调用
contains不一定会返回true。对于矩形的右侧或底部边缘上的点,contains方法不会返回true。因此,如果添加的点落在扩大后的矩形的右侧或底部边缘上,则contains对于该点将返回false。- 参数:
-
newx- 新点的X坐标 -
newy- 新点的Y坐标 - 自版本:
- 1.2
-
add
将Point2D对象pt添加到此Rectangle2D中。结果Rectangle2D是包含原始Rectangle2D和指定Point2D的最小Rectangle2D。添加点后,使用添加的点作为参数调用
contains方法不一定会返回true。对于矩形的右边缘或底边缘上的点,contains方法不会返回true。因此,如果添加的点落在扩大后的矩形的右边缘或底边缘上,contains对于该点将返回false。- 参数:
-
pt- 要添加到此Rectangle2D中的新Point2D。 - 自版本:
- 1.2
-
add
将一个Rectangle2D对象添加到此Rectangle2D中。结果Rectangle2D是两个Rectangle2D对象的并集。- 参数:
-
r- 要添加到此Rectangle2D中的Rectangle2D。 - 自版本:
- 1.2
-
getPathIterator
返回定义此Rectangle2D边界的迭代对象。此类的迭代器是多线程安全的,这意味着此Rectangle2D类保证对此Rectangle2D对象的几何形状的修改不会影响已经在进行中的任何几何形状的迭代。- 参数:
-
at- 可选的AffineTransform,用于在迭代中返回坐标,如果希望返回未转换的坐标,则为null - 返回:
-
返回以一段一段方式返回此
Rectangle2D轮廓的几何形状的PathIterator对象。 - 自版本:
- 1.2
-
getPathIterator
返回定义扁平化Rectangle2D边界的迭代对象。由于矩形已经是扁平的,因此忽略flatness参数。此类的迭代器是多线程安全的,这意味着此Rectangle2D类保证对此Rectangle2D对象的几何形状的修改不会影响已经在进行中的任何几何形状的迭代。- 指定者:
-
getPathIterator在接口Shape中 - 覆盖:
-
getPathIterator在类RectangularShape中 - 参数:
-
at- 可选的AffineTransform,用于在迭代中返回坐标,如果希望返回未转换的坐标,则为null -
flatness- 用于近似曲线段的直线段允许偏离原始曲线上任意点的最大距离。由于矩形已经是扁平的,因此忽略flatness参数。 - 返回:
-
返回以一段一段方式返回此
Rectangle2D轮廓的几何形状的PathIterator对象。 - 自版本:
- 1.2
-
hashCode
public int hashCode()返回此Rectangle2D的哈希码。 -
equals
确定指定的Object是否等于此Rectangle2D。如果指定的Object是Rectangle2D的实例,并且其位置和大小与此Rectangle2D相同,则指定的Object等于此Rectangle2D。
-