|
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
方法。
Shape
,
序列化表格字段摘要 | |
---|---|
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
。
Shape
中的 getBounds
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
的类注释。
Shape
中的 contains
x
- 指定的 x 坐标y
- 指定的 y 坐标
Polygon
包含指定的坐标,则返回 true
;否则返回 false
。public boolean contains(Point2D p)
Point2D
是否位于此 Polygon
边界的内部。
Shape
中的 contains
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
的内部是否完全包含指定的矩形坐标集。
Shape
中的 contains
x
- 指定的矩形坐标集左上角的 x 坐标y
- 指定的矩形坐标集左上角的 y 坐标w
- 矩形坐标集的宽度h
- 矩形坐标集的高度
Polygon
完全包含指定的矩形坐标集,则返回 true
;否则返回 false
Area
,
Shape.intersects(double, double, double, double)
public boolean contains(Rectangle2D r)
Polygon
的内部是否完全包含指定的 Rectangle2D
。
Shape
中的 contains
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. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。