- 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 classRectangle2D.DoubleDouble类定义以双坐标指定的矩形。static classRectangle2D.FloatFloat类定义以float坐标指定的矩形。
-
字段汇总
字段 变量和类型 字段 描述 static intOUT_BOTTOM位掩码,指示某个点位于此Rectangle2D。static intOUT_LEFT位掩码,指示某个点位于此Rectangle2D的左侧。static intOUT_RIGHT位掩码,指示某个点位于此Rectangle2D的右侧。static intOUT_TOP位掩码,指示某个点位于此Rectangle2D。
-
构造方法摘要
构造方法 变量 构造器 描述 protectedRectangle2D()这是一个无法直接实例化的抽象类。
-
方法摘要
所有方法 静态方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 voidadd(double newx, double newy)将双精度参数newx和newy指定的点添加到此Rectangle2D。voidadd(Point2D pt)将Point2D对象pt添加到此Rectangle2D。voidadd(Rectangle2D r)添加Rectangle2D对象到此Rectangle2D。booleancontains(double x, double y)测试指定的坐标是否在Shape的边界内,如 definition of insideness所述 。booleancontains(double x, double y, double w, double h)测试Shape的内部Shape完全包含指定的矩形区域。abstract Rectangle2DcreateIntersection(Rectangle2D r)返回一个新的Rectangle2D对象,表示此Rectangle2D与指定的Rectangle2D。abstract Rectangle2DcreateUnion(Rectangle2D r)返回一个新的Rectangle2D对象,表示此Rectangle2D与指定的Rectangle2D。booleanequals(Object obj)确定指定的Object是否等于此Rectangle2D。Rectangle2DgetBounds2D()返回Shape高精度和更精确的边界框,而不是getBounds方法。PathIteratorgetPathIterator(AffineTransform at)返回定义此Rectangle2D边界的迭代对象。PathIteratorgetPathIterator(AffineTransform at, double flatness)返回一个迭代对象,该对象定义展平的Rectangle2D的边界。inthashCode()返回此Rectangle2D的哈希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的内部相交。booleanintersectsLine(Line2D l)测试指定的线段是否与此Rectangle2D的内部相交。abstract intoutcode(double x, double y)确定指定坐标相对于此Rectangle2D。intoutcode(Point2D p)确定指定的Point2D相对于此Rectangle2D。voidsetFrame(double x, double y, double w, double h)将此Rectangle2D的外边界的位置和大小设置为指定的矩形值。abstract voidsetRect(double x, double y, double w, double h)将此Rectangle2D的位置和大小设置为指定的double值。voidsetRect(Rectangle2D r)将此Rectangle2D设置为与指定的Rectangle2D相同。static voidunion(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- 在迭代中返回时应用于坐标的可选AffineTransformnull如果需要未转换的坐标,则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
-
-