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
-
内部类总结
内部类修饰符和类型类描述static classDouble类定义了一个以双精度坐标指定的矩形。static classFloat类定义了一个以浮点坐标指定的矩形。 -
字段摘要
字段修饰符和类型Field描述static final int指示点位于此Rectangle2D下方的位掩码。static final int指示点位于此Rectangle2D左侧的位掩码。static final int指示点位于此Rectangle2D右侧的位掩码。static final int指示点位于此Rectangle2D上方的位掩码。 -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述voidadd(double newx, double newy) 将由双精度参数newx和newy指定的点添加到此Rectangle2D。void添加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的内部是否完全包含指定的矩形区域。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对象。在类 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
- 参见:
-
-
方法详情
-
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坐标- 返回:
true如果指定的线段与此Rectangle2D的内部相交;false否则。- 自从:
- 1.2
-
intersectsLine
测试指定的线段是否与此Rectangle2D的内部相交。- 参数:
l- 指定的Line2D测试与此Rectangle2D内部的交集- 返回:
true如果指定的Line2D与此Rectangle2D的内部相交;false否则。- 自从:
- 1.2
-
outcode
public abstract int outcode(double x, double y) 确定指定坐标相对于此Rectangle2D的位置。此方法计算适当掩码值的二进制或,指示对于此Rectangle2D的每一侧,指定坐标是否与此Rectangle2D的其余部分位于边缘的同一侧。- 参数:
x- 指定的X坐标y- 指定的Y坐标- 返回:
- 所有适当的输出代码的逻辑或。
- 自从:
- 1.2
- 参见:
-
outcode
确定指定的Point2D相对于此Rectangle2D的位置。此方法计算适当掩码值的二进制或,指示对于此Rectangle2D的每一侧,指定的Point2D是否与此Rectangle2D的其余部分位于边缘的同一侧。- 参数:
p- 指定的Point2D- 返回:
- 所有适当的输出代码的逻辑或。
- 自从:
- 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
返回Shape比getBounds方法更高精度和更准确的边界框。请注意,不能保证返回的Rectangle2D是包围Shape的最小边界框,只能保证Shape完全位于指示的Rectangle2D内。此方法返回的边界框通常比getBounds方法返回的边界框更紧密,并且不会因溢出问题而失败,因为返回值可以是使用双精度值存储尺寸的Rectangle2D的实例。请注意,definition of insideness 可能导致
shape定义轮廓上的点可能不被视为包含在返回的bounds对象中,但仅在这些点也不被视为包含在原始shape中的情况下。如果根据
contains(point)方法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的边界内,如 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
- 参见:
- 矩形区域和
-
contains
public boolean contains(double x, double y, double w, double h) 测试Shape的内部是否完全包含指定的矩形区域。位于矩形区域内的所有坐标必须位于Shape内,因为整个矩形区域都被视为包含在Shape内。Shape.contains()方法允许Shape实现在以下情况下保守地返回false:intersect方法返回true和- 确定
Shape是否完全包含矩形区域的计算非常昂贵。
Shapes此方法可能返回false即使Shape包含矩形区域。Area类执行比大多数Shape对象更精确的几何计算,因此可以在需要更精确的答案时使用。- 参数:
x- 指定矩形区域左上角的X坐标y- 指定矩形区域左上角的Y坐标w- 指定矩形区域的宽度h- 指定矩形区域的高度- 返回:
true如果Shape的内部完全包含指定的矩形区域;false否则,或者,如果Shape包含矩形区域并且intersects方法返回true并且包含计算将过于昂贵而无法执行。- 自从:
- 1.2
- 参见:
-
createIntersection
返回一个新的Rectangle2D对象,表示此Rectangle2D与指定的Rectangle2D的交集。- 参数:
r- 与此Rectangle2D相交的Rectangle2D- 返回:
-
最大的
Rectangle2D包含在指定的Rectangle2D和这个Rectangle2D中。 - 自从:
- 1.2
-
intersect
与一对指定的源Rectangle2D对象相交,并将结果放入指定的目标Rectangle2D对象。源矩形之一也可以是避免创建第三个 Rectangle2D 对象的目标,但在这种情况下,此源矩形的原始点将被此方法覆盖。- 参数:
src1- 要相互交叉的一对Rectangle2D对象中的第一个src2- 要相互交叉的一对Rectangle2D对象中的第二个dest-Rectangle2D保存src1和src2的交集结果- 自从:
- 1.2
-
createUnion
返回一个新的Rectangle2D对象,表示此Rectangle2D与指定的Rectangle2D的并集。- 参数:
r- 要与此Rectangle2D组合的Rectangle2D- 返回:
-
最小的
Rectangle2D包含指定的Rectangle2D和这个Rectangle2D。 - 自从:
- 1.2
-
union
合并一对源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
添加Point2D对象pt到这个Rectangle2D。生成的Rectangle2D是包含原始Rectangle2D和指定的Point2D的最小Rectangle2D。添加一个点后,以添加的点作为参数调用
contains不一定返回true。contains方法不会为矩形右侧或底部边缘的点返回true。因此,如果添加的点落在放大矩形的右侧或底部边缘,则contains会为该点返回false。- 参数:
pt- 新的Point2D添加到这个Rectangle2D。- 自从:
- 1.2
-
add
添加一个Rectangle2D对象到这个Rectangle2D。生成的Rectangle2D是两个Rectangle2D对象的并集。- 参数:
r- 要添加到此Rectangle2D的Rectangle2D。- 自从:
- 1.2
-
getPathIterator
返回定义此Rectangle2D边界的迭代对象。此类的迭代器是多线程安全的,这意味着此Rectangle2D类保证对此Rectangle2D对象的几何形状的修改不会影响已在进行中的该几何形状的任何迭代。- 参数:
at- 一个可选的AffineTransform应用于在迭代中返回的坐标,或者null如果需要未转换的坐标- 返回:
PathIterator对象返回此Rectangle2D轮廓的几何形状,一次一个段。- 自从:
- 1.2
-
getPathIterator
返回定义展平Rectangle2D边界的迭代对象。由于矩形已经是平面的,flatness参数将被忽略。此类的迭代器是多线程安全的,这意味着此Rectangle2D类保证对此Rectangle2D对象的几何形状的修改不会影响已在进行中的该几何形状的任何迭代。- 指定者:
getPathIterator在接口Shape中- 重写:
getPathIterator在类RectangularShape中- 参数:
at- 一个可选的AffineTransform应用于在迭代中返回的坐标,或者null如果需要未转换的坐标flatness- 用于逼近曲线段的线段允许偏离原始曲线上任意点的最大距离。由于矩形已经是平面的,flatness参数将被忽略。- 返回:
PathIterator对象返回此Rectangle2D轮廓的几何形状,一次一个段。- 自从:
- 1.2
-
hashCode
public int hashCode()返回此Rectangle2D的哈希码。 -
equals
确定指定的Object是否等于此Rectangle2D。指定的Object等于此Rectangle2D如果它是Rectangle2D的实例并且其位置和大小与此Rectangle2D相同。
-