- 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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static classRectangle2D.DoubleDouble类定义了一个双坐标指定的矩形。static classRectangle2D.FloatFloat类定义了一个在浮点坐标中指定的矩形。
-
Field Summary
Fields Modifier and Type Field 描述 static intOUT_BOTTOM该位掩码表示一个点位于此Rectangle2D。static intOUT_LEFT该位掩码表示一个点位于此Rectangle2D的左侧。static intOUT_RIGHT该位掩码表示一个点位于此Rectangle2D的右侧。static intOUT_TOP该位掩码表示一个点在Rectangle2D。
-
构造方法摘要
构造方法 Modifier Constructor 描述 protectedRectangle2D()这是一个无法直接实例化的抽象类。
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 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指定坐标的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对象。-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from 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
-
-
-
-
字段详细信息
-
OUT_LEFT
public static final int OUT_LEFT
该位掩码表示一个点位于此Rectangle2D的左侧。- 从以下版本开始:
- 1.2
- 另请参见:
- Constant Field Values
-
OUT_TOP
public static final int OUT_TOP
该位掩码表示一个点位于此Rectangle2D。- 从以下版本开始:
- 1.2
- 另请参见:
- Constant Field Values
-
OUT_RIGHT
public static final int OUT_RIGHT
该位掩码表示一个点位于此Rectangle2D的右侧。- 从以下版本开始:
- 1.2
- 另请参见:
- Constant Field Values
-
OUT_BOTTOM
public static final int OUT_BOTTOM
该位掩码表示一个点位于此Rectangle2D。- 从以下版本开始:
- 1.2
- 另请参见:
- Constant Field Values
-
-
构造方法详细信息
-
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的内部Rectangle2D - 结果
-
true如果指定的Line2D与这个Rectangle2D的内部相交;false否则。 - 从以下版本开始:
- 1.2
-
outcode
public abstract int outcode(double x, double y)确定相对于该Rectangle2D指定坐标的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方法返回的getBounds更小,因为溢出问题永远不会失败,因为返回值可以是使用双精度值存储维度的Rectangle2D的实例。请注意, definition of insideness可能导致shape定义轮廓上的
shape可能不被视为包含在返回的bounds对象中的情况,但仅在这些点也未被包含在原始shape。如果一个
point是在shape按contains(point)方法,那就必须在Rectangle2D范围内的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这个方法可能会返回false即使Shape包含矩形区域。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化的边界Rectangle2D。 由于矩形已经平坦,因此flatness参数将被忽略。 该类的迭代器是多线程安全的,这意味着这个Rectangle2D类保证对这个Rectangle2D对象的几何的修改不会影响已经在处理的几何的任何迭代。- Specified by:
-
getPathIterator在接口Shape - 重写:
-
getPathIterator在RectangularShape - 参数
-
at- 要在迭代中返回时应用于坐标的可选AffineTransform,如果需要未转换的坐标,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
-
-