|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object java.awt.Polygon
public class Polygon
Polygon
类封装了坐标空间中封闭的二维区域的描述。此区域以任意条线段为边界,每条线段都是多边形的一条边。在内部,一个多边形包含一列 (x, y) 坐标对,其中每个坐标对定义多边形的一个顶点,且两个连续的坐标对是多边形一条边的端点。第一个和最后一个 (x, y) 坐标对通过一条线段相连,形成一个封闭的多边形。此 Polygon
以奇-偶性缠绕规则来定义。有关奇-偶性缠绕规则的定义,请参见 WIND_EVEN_ODD
。此类的点击测试方法使用 Shape
类注释中描述的 insideness 定义,点击测试方法包括 contains
、intersects
和 inside
方法。
字段摘要 | |
---|---|
protected Rectangle |
bounds
多边形的边界。 |
int |
npoints
点的总数。 |
int[] |
xpoints
x 坐标的数组。 |
int[] |
ypoints
y 坐标的数组。 |
构造方法摘要 | |
---|---|
Polygon()
创建空的多边形。 |
|
Polygon(int[] xpoints,
int[] ypoints,
int npoints)
以指定的参数构造并初始化新的 Polygon 。 |
方法摘要 | |
---|---|
void |
addPoint(int x,
int y)
将指定的坐标追加到此 Polygon 。 |
boolean |
contains(double x,
double y)
确定指定坐标是否位于此 Polygon 内部。 |
boolean |
contains(double x,
double y,
double w,
double h)
测试此 Polygon 的内部是否完全包含指定的矩形坐标集。 |
boolean |
contains(int x,
int y)
确定指定的坐标是否位于此 Polygon 的内部。 |
boolean |
contains(Point p)
确定指定的 Point 是否位于此 Polygon 的内部。 |
boolean |
contains(Point2D p)
测试指定的 Point2D 是否位于此 Polygon 边界的内部。 |
boolean |
contains(Rectangle2D r)
测试此 Polygon 的内部是否完全包含指定的 Rectangle2D 。 |
Rectangle |
getBoundingBox()
已过时。 从 JDK version 1.1 开始,由 getBounds() 取代。 |
Rectangle |
getBounds()
获取此 Polygon 的边界框。 |
Rectangle2D |
getBounds2D()
返回 Shape 的高精度的边界框。 |
PathIterator |
getPathIterator(AffineTransform at)
返回迭代器对象,此对象沿此 Polygon 的边界进行迭代,并且提供到此 Polygon 的轮廓的几何形状的访问。 |
PathIterator |
getPathIterator(AffineTransform at,
double flatness)
返回迭代器对象,此对象沿 Shape 的边界进行迭代,并且提供了到 Shape 的轮廓的几何形状的访问。 |
boolean |
inside(int x,
int y)
已过时。 从 JDK version 1.1 开始, 此函数为 contains(int, int) 。 |
boolean |
intersects(double x,
double y,
double w,
double h)
测试此 Polygon 内部是否与指定的矩形坐标集交叉。 |
boolean |
intersects(Rectangle2D r)
测试此 Polygon 的内部是否与指定的 Rectangle2D 的内部交叉。 |
void |
invalidate()
所有内部缓冲数据的失效或刷新都依赖于此 Polygon 的顶点坐标。 |
void |
reset()
将此 Polygon 对象重置为一个空多边形。 |
void |
translate(int deltaX,
int deltaY)
通过沿 x 轴移动 deltaX ,沿 y 移动 deltaY ,从而对 Polygon 的顶点进行平移。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
public int npoints
npoints
的值表示在此 Polygon
中有效的点的数量,该值可以小于 xpoints
或 ypoints
中元素的个数。此值可以为 NULL。
addPoint(int, int)
public int[] xpoints
Polygon
中 x 坐标的个数。额外的元素允许新的点添加到此 Polygon
中,而无需重新创建此数组。npoints
的值等于此 Polygon
中有效点的个数。
addPoint(int, int)
public int[] ypoints
Polygon
中 y 坐标的个数。额外的元素允许新的点添加到 Polygon
中,而无需重新创建此数组。npoints
的值等于此 Polygon
中有效点的个数。
addPoint(int, int)
protected Rectangle bounds
getBoundingBox()
,
getBounds()
构造方法详细信息 |
---|
public Polygon()
public Polygon(int[] xpoints, int[] ypoints, int npoints)
Polygon
。
xpoints
- x 坐标的数组ypoints
- y 坐标的数组npoints
- 此 Polygon
中点的总数
NegativeArraySizeException
- 如果 npoints
为负值。
IndexOutOfBoundsException
- 如果 npoints
大于 xpoints
或 ypoints
的长度。
NullPointerException
- 如果 xpoints
或 ypoints
为 null
。方法详细信息 |
---|
public void reset()
Polygon
对象重置为一个空多边形。坐标数组及其中的数据不发生改变,但点的个数被重置为零,以便将旧的顶点数据标记为无效,并且开始从头累积新的顶点数据。与旧顶点相关的所有内部缓冲的数据都将被丢弃。注意,由于重用了重置之前的坐标数组,因此创建一个新的空 Polygon
与重置当前多边形相比,如果新多边形数据的顶点数远远少于重置之前的数据的顶点数,则重新创建将会提高内存的效率。
invalidate()
public void invalidate()
Polygon
的顶点坐标。此方法应该在完成对 xpoints
或 ypoints
数组中坐标的直接操作之后被调用,以避免产生与 getBounds
或 contains
这样的方法不一致的结果,后者这些方法可能从与顶点坐标相关联的更早的计算中缓冲数据。
getBounds()
public void translate(int deltaX, int deltaY)
deltaX
,沿 y 移动 deltaY
,从而对 Polygon
的顶点进行平移。
deltaX
- 沿 x 轴移动的量deltaY
- 沿 y 轴移动的量public void addPoint(int x, int y)
Polygon
。
如果已经执行了计算此 Polygon
的边界框的操作,例如 getBounds
或 contains
,则此方法更新边界框。
x
- 指定的 x 坐标y
- 指定的 y 坐标getBounds()
,
contains(java.awt.Point)
public Rectangle getBounds()
Polygon
的边界框。边界框是最小的 Rectangle
,其边平行于坐标空间的 x 轴和 y 轴,且能够完全包含 Polygon
。
Polygon
边界的 Rectangle
。Shape.getBounds2D()
@Deprecated public Rectangle getBoundingBox()
getBounds()
取代。
Polygon
的边界。
Polygon
的边界。public boolean contains(Point p)
Point
是否位于此 Polygon
的内部。
p
- 要测试的指定的 Point
Polygon
包含 Point
,则返回 true
;否则返回 false
。contains(double, double)
public boolean contains(int x, int y)
Polygon
的内部。
x
- 要测试的指定的 x 坐标y
- 要测试的指定的 y 坐标
Polygon
包含指定的坐标 (x, y),则返回 true
;否则返回 false
。contains(double, double)
@Deprecated public boolean inside(int x, int y)
contains(int, int)
。
Polygon
是否包含指定的坐标。
x
- 要测试的指定的 x 坐标y
- 要测试的指定的 y 坐标
Polygon
包含指定坐标,则返回 true
;否则返回 false
。contains(double, double)
public Rectangle2D getBounds2D()
Shape
的高精度的边界框。
Shape
中的 getBounds2D
Shape
的边界的 Rectangle2D
。Shape.getBounds()
public boolean contains(double x, double y)
Polygon
内部。有关 insideness 的定义,请参见 Shape
的类注释。
x
- 指定的 x 坐标y
- 指定的 y 坐标
Polygon
包含指定的坐标,则返回 true
;否则返回 false
。public boolean contains(Point2D p)
Point2D
是否位于此 Polygon
边界的内部。
p
- 指定的 Point2D
Polygon
包含指定的 Point2D
,则返回 true
;否则返回 false
。contains(double, double)
public boolean intersects(double x, double y, double w, double h)
Polygon
内部是否与指定的矩形坐标集交叉。
Shape
中的 intersects
x
- 指定矩形左上角的 x 坐标y
- 指定矩形左上角的 y 坐标w
- 指定矩形的宽度h
- 指定矩形的高度
Polygon
的内部与指定矩形坐标集内部相互交叉,则返回 true
;否则返回 false
Area
public boolean intersects(Rectangle2D r)
Polygon
的内部是否与指定的 Rectangle2D
的内部交叉。
Shape
中的 intersects
r
- 指定的 Rectangle2D
Polygon
与指定的 Rectangle2D
的内部相互交叉,则返回 true
;否则返回 false
。Shape.intersects(double, double, double, double)
public boolean contains(double x, double y, double w, double h)
Polygon
的内部是否完全包含指定的矩形坐标集。
x
- 指定的矩形坐标集左上角的 x 坐标y
- 指定的矩形坐标集左上角的 y 坐标w
- 矩形坐标集的宽度h
- 矩形坐标集的高度
Polygon
完全包含指定的矩形坐标集,则返回 true
;否则返回 false
Area
,
Shape.intersects(double, double, double, double)
public boolean contains(Rectangle2D r)
Polygon
的内部是否完全包含指定的 Rectangle2D
。
r
- 指定的 Rectangle2D
Polygon
完全包含指定的 Rectangle2D
,则返回 true
;否则返回 false
。contains(double, double, double, double)
public PathIterator getPathIterator(AffineTransform at)
Polygon
的边界进行迭代,并且提供到此 Polygon
的轮廓的几何形状的访问。可以指定一个可选的 AffineTransform
,以便对迭代中返回的坐标进行相应的转换。
Shape
中的 getPathIterator
at
- 坐标在迭代中返回时,要应用于这些坐标的可选的 AffineTransform
,或者需要撤消转换时为 null
PathIterator
对象,该对象提供到此 Polygon
的几何形状的访问。public PathIterator getPathIterator(AffineTransform at, double flatness)
Shape
的边界进行迭代,并且提供了到 Shape
的轮廓的几何形状的访问。迭代器只返回 SEG_MOVETO、SEG_LINETO 和 SEG_CLOSE 点类型。由于多边形是平面的,因此可以忽略 flatness
参数。可以指定可选的 AffineTransform
,在这种情况下相应地转换在迭代返回的坐标。
Shape
中的 getPathIterator
at
- 坐标在迭代中返回时,要应用于这些坐标的可选的 AffineTransform
,或者需要撤消转换时为 null
flatness
- 在使用连接端点的直线取代细分的曲线之前,给定曲线的控制点可以从共线变化的最大量。由于多平形是平面的,因此可以忽略 flatness
参数。
PathIterator
对象,此对象提供到 Shape
对象的几何形状的访问。
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。