- java.lang.Object
-
- java.awt.geom.RectangularShape
-
- java.awt.geom.Rectangle2D
-
- 已知直接子类:
-
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
类定义以双坐标指定的矩形。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)
将双精度参数newx
和newy
指定的点添加到此Rectangle2D
。void
add(Point2D pt)
将Point2D
对象pt
添加到此Rectangle2D
。void
add(Rectangle2D r)
添加Rectangle2D
对象到此Rectangle2D
。boolean
contains(double x, double y)
测试指定的坐标是否在Shape
的边界内,如 definition of insideness所述 。boolean
contains(double x, double y, double w, double h)
测试Shape
的内部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()
返回Shape
高精度和更精确的边界框,而不是getBounds
方法。PathIterator
getPathIterator(AffineTransform at)
返回定义此Rectangle2D
边界的迭代对象。PathIterator
getPathIterator(AffineTransform at, double flatness)
返回一个迭代对象,该对象定义展平的Rectangle2D
的边界。int
hashCode()
返回此Rectangle2D
的哈希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
-
-
-
-
字段详细信息
-
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坐标 - 结果
-
true
如果指定的线段与此Rectangle2D
的内部相交; 否则为false
。 - 从以下版本开始:
- 1.2
-
intersectsLine
public boolean intersectsLine(Line2D l)
测试指定的线段是否与此Rectangle2D
的内部相交。- 参数
-
l
- 指定Line2D
以测试与此内部的Rectangle2D
- 结果
-
true
若指定的Line2D
与此Rectangle2D
的内部相交; 否则为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
。 此方法计算适当的掩码值的二进制OR,表示对于此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
的外边界的位置和大小设置为指定的矩形值。- Specified by:
-
setFrame
在类RectangularShape
- 参数
-
x
- 此Rectangle2D
左上角的X坐标 -
y
- 此Rectangle2D
左上角的Y坐标 -
w
- 这个宽度Rectangle2D
-
h
- 这个高度Rectangle2D
- 从以下版本开始:
- 1.2
- 另请参见:
-
RectangularShape.getFrame()
-
getBounds2D
public Rectangle2D getBounds2D()
返回Shape
高精度和更精确的边界框,而不是getBounds
方法。 请注意,不保证返回的Rectangle2D
是最小的边框包围Shape
,只表示Shape
完全在指定的范围内Rectangle2D
。 此方法返回的边界框通常比getBounds
方法返回的边界框更紧密,并且由于溢出问题而永远不会失败,因为返回值可以是使用双精度值来存储尺寸的Rectangle2D
的实例。请注意, definition of insideness可能会导致shape定义轮廓上的
shape
可能不被视为包含在返回的bounds
对象中,但仅限于原始shape
不包含这些点的情况。如果
point
是内部shape
根据contains(point)
方法,那么它必须是内部返回Rectangle2D
界限根据对象contains(point)
所述的方法bounds
。 特别:shape.contains(p)
需要bounds.contains(p)
如果
point
不在shape
,则它可能仍包含在bounds
对象中:bounds.contains(p)
并不shape.contains(p)
- 结果
-
的实例
Rectangle2D
那是一个高精度边界框Shape
。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Shape.getBounds()
-
contains
public boolean contains(double x, double y)
测试指定的坐标是否在Shape
的边界内,如 definition of insideness所述 。- 参数
-
x
- 要测试的指定X坐标 -
y
- 要测试的指定Y坐标 - 结果
-
true
如果指定的坐标位于Shape
边界内; 否则为false
。 - 从以下版本开始:
- 1.2
-
intersects
public boolean intersects(double x, double y, double w, double h)
测试Shape
的内部是否与指定矩形区域的内部相交。 矩形区域被认为是交叉的Shape
如果任何点被包含在双方的内部Shape
和指定的矩形区域。在以下情况下,
Shape.intersects()
方法允许Shape
实施保守地返回true
:- 矩形区域与
Shape
相交的概率很高,但是 - 精确确定这个交叉点的计算非常昂贵。
Shapes
这种方法也可能返回true
即使矩形区域没有相交Shape
。Area
类比大多数Shape
对象执行更精确的几何交集计算,因此如果需要更精确的答案,则可以使用它。- 参数
-
x
- 指定矩形区域左上角的X坐标 -
y
- 指定矩形区域左上角的Y坐标 -
w
- 指定矩形区域的宽度 -
h
- 指定矩形区域的高度 - 结果
-
true
如果Shape
的内部与矩形区域的内部相交,或者两者都很可能相交,并且交叉计算将太昂贵而无法执行; 否则为false
。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Area
- 矩形区域与
-
contains
public boolean contains(double x, double y, double w, double h)
测试Shape
的内部Shape
完全包含指定的矩形区域。 摆在矩形区域内必须将内在于所有的坐标Shape
整个矩形区域被认为包含内Shape
。在以下情况下,
Shape.contains()
方法允许Shape
实施保守地返回false
:-
intersect
方法返回true
和 - 用于确定
Shape
是否完全包含矩形区域的计算非常昂贵。
Shapes
即使Shape
包含矩形区域,此方法也可能返回false
。Area
类比大多数Shape
对象执行更精确的几何计算,因此如果需要更精确的答案,则可以使用它。- 参数
-
x
- 指定矩形区域左上角的X坐标 -
y
- 指定矩形区域左上角的Y坐标 -
w
- 指定矩形区域的宽度 -
h
- 指定矩形区域的高度 - 结果
-
true
如果内部Shape
完全包含指定矩形区域;false
否则,或者,如果Shape
包含矩形区域并且intersects
方法返回true
并且包含计算将太昂贵而无法执行。 - 从以下版本开始:
- 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
-所述Rectangle2D
保存的交集的结果src1
和src2
- 从以下版本开始:
- 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
-Rectangle2D
,其中包含src1
和src2
的联合结果 - 从以下版本开始:
- 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
public void add(Point2D pt)
将Point2D
对象pt
添加到此Rectangle2D
。 结果Rectangle2D
是最小的Rectangle2D
,包含原始的Rectangle2D
和指定的Point2D
。添加一个点后,使用添加的点作为参数调用
contains
不一定返回true
。 对于矩形的右边缘或底边缘上的点,contains
方法不返回true
。 因此,如果添加的点落在放大矩形的左边缘或底边缘上,则contains
将返回该点的false
。- 参数
-
pt
- 新增Point2D
加入此Rectangle2D
。 - 从以下版本开始:
- 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
- 结果
-
PathIterator
对象,返回此Rectangle2D
轮廓的几何,一次一个段。 - 从以下版本开始:
- 1.2
-
getPathIterator
public PathIterator getPathIterator(AffineTransform at, double flatness)
返回一个迭代对象,该对象定义展平的Rectangle2D
的边界。 由于矩形已经是平坦的,因此忽略flatness
参数。 此类的迭代器是多线程安全的,这意味着此Rectangle2D
类保证对此Rectangle2D
对象的几何的修改不会影响已在进行中的该几何的任何迭代。- Specified by:
-
getPathIterator
在界面Shape
- 重写:
-
getPathIterator
在类RectangularShape
- 参数
-
at
- 在迭代中返回时应用于坐标的可选AffineTransform
null
如果需要未转换的坐标,则null
-
flatness
- 允许用于近似弯曲段的线段的最大距离偏离原始曲线上的任何点。 由于矩形已经是平坦的,因此忽略flatness
参数。 - 结果
-
PathIterator
对象,返回此Rectangle2D
轮廓的几何,一次一个段。 - 从以下版本开始:
- 1.2
-
hashCode
public int hashCode()
返回此Rectangle2D
的哈希Rectangle2D
。- 重写:
-
hashCode
类Object
- 结果
-
这个
Rectangle2D
的哈希Rectangle2D
。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
equals
public boolean equals(Object obj)
确定指定的Object
是否等于此Rectangle2D
。 指定Object
等于该Rectangle2D
如果是的一个实例Rectangle2D
,如果它的位置和大小是相同的,因为这Rectangle2D
。- 重写:
-
equals
在类Object
- 参数
-
obj
-一个Object
与此相比较Rectangle2D
。 - 结果
-
true
如果obj
是的一个实例Rectangle2D
,并具有相同的值; 否则为false
。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Object.hashCode()
,HashMap
-
-