public abstract class Rectangle2D extends RectangularShape
Rectangle2D类描述了由位置(x,y)和维度(w x h)定义的(w x h) 。
该类只是存储2D矩形的所有对象的抽象超类。 坐标的实际存储表示留给子类。
| Modifier and Type | Class and Description |
|---|---|
static class |
Rectangle2D.Double
Double类定义了一个以双坐标指定的矩形。
|
static class |
Rectangle2D.Float
Float类定义了一个以浮点坐标指定的矩形。
|
| Modifier and Type | Field and Description |
|---|---|
static int |
OUT_BOTTOM
该位掩码表示一个点位于此
Rectangle2D 。
|
static int |
OUT_LEFT
该位掩码表示一个点位于此
Rectangle2D的左侧。
|
static int |
OUT_RIGHT
该位掩码表示一个点位于此
Rectangle2D的右侧。
|
static int |
OUT_TOP
该位掩码表示一个点位于此
Rectangle2D 。
|
| Modifier | Constructor and Description |
|---|---|
protected |
Rectangle2D()
这是一个无法直接实例化的抽象类。
|
| Modifier and Type | Method and Description |
|---|---|
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的内部是否包含指定的矩形区域。
|
abstract Rectangle2D |
createIntersection(Rectangle2D r)
返回一个新的
Rectangle2D对象,表示此
Rectangle2D与指定的Rectangle2D的
Rectangle2D 。
|
abstract Rectangle2D |
createUnion(Rectangle2D r)
返回一个新的
Rectangle2D对象,表示该
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的边界的迭代
Rectangle2D 。
|
int |
hashCode()
返回此
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的内部
Rectangle2D 。
|
boolean |
intersectsLine(Line2D l)
测试指定的线段是否与此
Rectangle2D的内部
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对象。
|
clone, contains, contains, getBounds, getCenterX, getCenterY, getFrame, getHeight, getMaxX, getMaxY, getMinX, getMinY, getWidth, getX, getY, intersects, isEmpty, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonalpublic static final int OUT_LEFT
Rectangle2D左侧的位掩码。
public static final int OUT_TOP
Rectangle2D 。
public static final int OUT_RIGHT
Rectangle2D的右侧。
public static final int OUT_BOTTOM
Rectangle2D 。
protected Rectangle2D()
Rectangle2D.Float , Rectangle2D.Double , Rectangle
public abstract void setRect(double x,
double y,
double w,
double h)
Rectangle2D的位置和大小设置为指定的
double值。
x - 这个
Rectangle2D左上角的X
Rectangle2D
y - 这个
Rectangle2D左上角的Y
Rectangle2D
w - 这个宽度
Rectangle2D
h - 这个
Rectangle2D的高度
public void setRect(Rectangle2D r)
Rectangle2D设置为与指定的
Rectangle2D相同。
r - 指定的
Rectangle2D
public boolean intersectsLine(double x1,
double y1,
double x2,
double y2)
Rectangle2D的内部
Rectangle2D 。
x1 - 指定
x1的X坐标
y1 - 指定
y1的Y坐标
x2 - 指定线段终点的X坐标
y2 - 指定线段终点的Y坐标
true如果指定的线段与此Rectangle2D的内部Rectangle2D ;
false否则。
public boolean intersectsLine(Line2D l)
Rectangle2D的内部
Rectangle2D 。
l - 指定的Line2D测试与这个Rectangle2D的内部Rectangle2D
true如果指定Line2D相交这个内部Rectangle2D ;
false否则。
public abstract int outcode(double x,
double y)
Rectangle2D 。
该方法计算适当的掩码值的二进制OR,该值适用于该Rectangle2D的每一侧, Rectangle2D是否与该Rectangle2D的其余部分位于边的同一侧。
x - 指定的X坐标
y - 指定的Y坐标
OUT_LEFT ,
OUT_TOP ,
OUT_RIGHT ,
OUT_BOTTOM
public int outcode(Point2D p)
Point2D在于相对于这个Rectangle2D 。
此方法计算的二进制OR指示适当的掩码值的,对于此的每一侧Rectangle2D ,指定是否Point2D是在边缘,因为这的剩余部分的同一侧Rectangle2D 。
p - 指定的
Point2D
OUT_LEFT ,
OUT_TOP ,
OUT_RIGHT ,
OUT_BOTTOM
public void setFrame(double x,
double y,
double w,
double h)
Rectangle2D的外部边界的位置和大小设置为指定的矩形值。
setFrame在类别
RectangularShape
x - 这个
Rectangle2D左上角的X
Rectangle2D
y - 这个
Rectangle2D左上角的Y
Rectangle2D
w - 这个宽度
Rectangle2D
h - 这个
Rectangle2D的高度
RectangularShape.getFrame()
public Rectangle2D getBounds2D()
Shape比getBounds方法返回一个高精度和更精确的边界框。
需要注意的是没有保证返回Rectangle2D是最小的边框包围Shape ,只表示Shape完全在指定的范围内Rectangle2D 。
通过此方法返回的边界框通常比通过返回的更紧密getBounds方法,而且永远不会因为溢出问题,因为返回值可以是实例Rectangle2D一个使用双精度值存储尺寸。
需要注意的是definition of insideness可能会导致出现对的定义轮廓点的情况下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 。
Shape.getBounds()
public boolean contains(double x,
double y)
Shape ,如所描述的
definition of insideness 。
x - 要测试的指定X坐标
y - 要测试的指定Y坐标
true如果指定的坐标在Shape边界内;
false否则。
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否则。
Area
public boolean contains(double x,
double y,
double w,
double h)
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 ,并且包含计算将太昂贵执行。
Area , Shape.intersects(double, double, double, double)
public abstract Rectangle2D createIntersection(Rectangle2D r)
Rectangle2D对象,表示此
Rectangle2D与指定的Rectangle2D的
Rectangle2D 。
r -在
Rectangle2D与此相交
Rectangle2D
Rectangle2D包含在指定的
Rectangle2D和在这
Rectangle2D 。
public static void intersect(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)
Rectangle2D对象,并将结果放入指定的目的地Rectangle2D对象。
源矩形之一也可以是避免创建第三个Rectangle2D对象的目的地,但在这种情况下,此源矩形的原始点将被该方法覆盖。
src1 - 要彼此相交的一对
Rectangle2D对象中的第一个
src2 - 要彼此相交的一对
Rectangle2D对象中的第二个
dest -所述
Rectangle2D保存的交集的结果
src1和
src2
public abstract Rectangle2D createUnion(Rectangle2D r)
Rectangle2D对象,表示此
Rectangle2D与指定的Rectangle2D的并
Rectangle2D 。
r -
Rectangle2D要结合这个
Rectangle2D
Rectangle2D包含指定的
Rectangle2D和这个
Rectangle2D 。
public static void union(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)
Rectangle2D对象并将结果放入指定的目的地Rectangle2D对象。
源矩形之一也可以是避免创建第三个Rectangle2D对象的目的地,但在这种情况下,此源矩形的原始点将被该方法覆盖。
src1 - 要组合的一对
Rectangle2D对象中的第一个
src2 - 第二个要组合的
Rectangle2D对象
dest -在
Rectangle2D持有的联合的结果
src1和
src2
public void add(double newx,
double newy)
newx和newy的点添加到此Rectangle2D 。
所得到的Rectangle2D是最小的Rectangle2D ,其中包含原始的Rectangle2D和指定的点。
添加点后,调用contains添加点作为参数不一定返回true 。 contains方法不会返回true用于true右侧或底部边缘的点。 因此,如果添加点落在放大矩形的左边缘或下边缘,那么contains contains返回false 。
newx - 新点的X坐标
newy - 新点的Y坐标
public void add(Point2D pt)
Point2D对象pt添加到此Rectangle2D 。
所得到的Rectangle2D是最小的Rectangle2D ,其中包含原始的Rectangle2D和指定的Point2D 。
添加点后,调用contains添加点作为参数不一定返回true 。 contains方法不会返回true对于true右边或底边的点。 因此,如果添加点落在放大矩形的左边缘或下边缘,那么contains contains返回false 。
pt - 新的
Point2D添加到此
Rectangle2D 。
public void add(Rectangle2D r)
Rectangle2D中添加一个Rectangle2D对象。
所得到的Rectangle2D是两个Rectangle2D对象的并集。
r -
Rectangle2D添加到此
Rectangle2D 。
public PathIterator getPathIterator(AffineTransform at)
Rectangle2D边界的迭代对象。
此类的迭代器是多线程安全的,这意味着此Rectangle2D类保证对此Rectangle2D对象的几何的Rectangle2D不会影响已处理的该几何的任何迭代。
at - 要在迭代中返回时应用于
at的可选
AffineTransform ,如果需要未转换的
null ,则为null
PathIterator对象返回这个
Rectangle2D的轮廓的几何,一次一个段。
public PathIterator getPathIterator(AffineTransform at, double flatness)
Rectangle2D的边界。
由于矩形已经平坦,因此flatness参数将被忽略。
这个类的迭代器是多线程安全的,这意味着这个Rectangle2D类保证对这个Rectangle2D对象的几何的Rectangle2D不会影响已经在处理的几何的任何迭代。
getPathIterator在界面
Shape
getPathIterator在类别
RectangularShape
at - 要在迭代中返回时应用于
at的可选
AffineTransform ,如果需要未转换的
null ,则为null
flatness - 用于近似曲线段的线段的最大距离允许偏离原始曲线上的任何点。
由于矩形已经平坦,因此flatness参数将被忽略。
PathIterator对象返回此
Rectangle2D的轮廓的几何,一次一个段。
public int hashCode()
Rectangle2D的哈希码。
hashCode在
Object
Rectangle2D的哈希码。
Object.equals(java.lang.Object) ,
System.identityHashCode(java.lang.Object)
public boolean equals(Object obj)
Object是否等于此Rectangle2D 。
指定Object等于该Rectangle2D如果是的一个实例Rectangle2D ,如果它的位置和大小是相同的,因为这Rectangle2D 。
equals在类别
Object
obj - 一个
Object要与这个
Rectangle2D进行比较。
true如果obj是的一个实例Rectangle2D ,并具有相同的值;
false否则。
Object.hashCode() , HashMap
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.