- 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 class
Rectangle2D.Double
Double
类定义了一个双坐标指定的矩形。static class
Rectangle2D.Float
Float
类定义了一个在浮点坐标中指定的矩形。
-
Field Summary
Fields Modifier and Type Field 描述 static int
OUT_BOTTOM
该位掩码表示一个点位于此Rectangle2D
。static int
OUT_LEFT
该位掩码表示一个点位于此Rectangle2D
的左侧。static int
OUT_RIGHT
该位掩码表示一个点位于此Rectangle2D
的右侧。static int
OUT_TOP
该位掩码表示一个点在Rectangle2D
。
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
Rectangle2D()
这是一个无法直接实例化的抽象类。
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 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
指定坐标的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
对象。-
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
-
-