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
Modifier and TypeClassDescriptionstatic class
Double
类定义了一个使用双精度坐标指定的矩形。static class
Float
类定义了一个使用浮点坐标指定的矩形。 -
Field Summary
Modifier and TypeFieldDescriptionstatic final int
指示点位于此Rectangle2D
下方的位掩码。static final int
指示点位于此Rectangle2D
左侧的位掩码。static final int
指示点位于此Rectangle2D
右侧的位掩码。static final int
指示点位于此Rectangle2D
上方的位掩码。 -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
add
(double newx, double newy) 将由双精度参数newx
和newy
指定的点添加到此Rectangle2D
中。void
将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
返回一个新的Rectangle2D
对象,表示此Rectangle2D
与指定Rectangle2D
的交集。abstract Rectangle2D
返回一个新的Rectangle2D
对象,表示此Rectangle2D
与指定Rectangle2D
的并集。boolean
确定指定的Object
是否等于此Rectangle2D
。返回Shape
的边界框比getBounds
方法更高精度和更准确的边界框。返回一个定义此Rectangle2D
边界的迭代对象。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
测试指定的线段是否与此Rectangle2D
的内部相交。abstract int
outcode
(double x, double y) 确定指定坐标相对于此Rectangle2D
的位置。int
确定指定的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
将此Rectangle2D
设置为与指定的Rectangle2D
相同。static void
union
(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
。
-