|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object java.awt.geom.GeneralPath
GeneralPath
类表示根据直线、二次曲线和三次 (Bézier) 曲线构造的几何路径。它可以包含多个子路径。
缠绕规则指定确定路径内部的方式。缠绕规则有两种类型:EVEN_ODD 和 NON_ZERO。
EVEN_ODD 缠绕规则意味着,从路径外向区域内的点移动并穿过它时,路径的封闭区域在内部区域和外部区域之间交替变化。
NON_ZERO 缠绕规则意味着,如果从给定点朝任意方向向无穷大绘制射线并检查路径与射线相交的位置,当且仅当路径从左到右穿过射线的次数不等于路径从右到左穿过射线的次数时,点位于路径内。
字段摘要 | |
---|---|
static int |
WIND_EVEN_ODD
用于确定路径内部的奇偶 (even-odd) 缠绕规则。 |
static int |
WIND_NON_ZERO
用于确定路径内部的非零 (non-zero) 缠绕规则。 |
构造方法摘要 | |
---|---|
GeneralPath()
构造一个新 GeneralPath 对象。 |
|
GeneralPath(int rule)
构造一个新 GeneralPath 对象,使其具有指定缠绕规则以控制需要定义路径内部的操作。 |
|
GeneralPath(int rule,
int initialCapacity)
构造一个新 GeneralPath 对象,使其具有指定的缠绕规则和指定的初始容量,以存储路径坐标。 |
|
GeneralPath(Shape s)
根据任意 Shape 对象构造一个新 GeneralPath 对象。 |
方法摘要 | |
---|---|
void |
append(PathIterator pi,
boolean connect)
将指定 PathIterator 对象的几何形状追加到路径中,可能使用一条线段将新几何形状连接到现有的路径段。 |
void |
append(Shape s,
boolean connect)
将指定 Shape 对象的几何形状追加到路径中,可能使用一条线段将新几何形状连接到现有的路径段。 |
Object |
clone()
创建一个与此对象具有相同类的新对象。 |
void |
closePath()
通过向最后 moveTo 的坐标绘制直线闭合当前子路径。 |
boolean |
contains(double x,
double y)
测试指定坐标是否在 Shape 的边界内。 |
boolean |
contains(double x,
double y,
double w,
double h)
测试指定矩形区域是否在 Shape 的边界内。 |
boolean |
contains(Point2D p)
测试指定 Point2D 是否在 Shape 的边界内。 |
boolean |
contains(Rectangle2D r)
测试指定 Rectangle2D 是否在 Shape 的边界内。 |
Shape |
createTransformedShape(AffineTransform at)
返回新变换的 Shape 。 |
void |
curveTo(float x1,
float y1,
float x2,
float y2,
float x3,
float y3)
通过绘制与当前坐标及坐标 (x3,y3) 都相交的 Bézier 曲线,并将指定点 (x1,y1) 和 (x2,y2) 用作 Bézier 的控制点,将由三个新点定义的曲线段添加到路径中。 |
Rectangle |
getBounds()
返回路径的边界框。 |
Rectangle2D |
getBounds2D()
返回路径的边界框。 |
Point2D |
getCurrentPoint()
返回最近添加到路径尾部的坐标(作为 Point2D 对象)。 |
PathIterator |
getPathIterator(AffineTransform at)
返回一个沿 Shape 边界迭代并提供对 Shape 轮廓几何形状访问的 PathIterator 对象。 |
PathIterator |
getPathIterator(AffineTransform at,
double flatness)
返回一个沿变平 Shape 边界迭代并提供对 Shape 轮廓几何形状的访问的 PathIterator 对象。 |
int |
getWindingRule()
返回填充风格缠绕规则。 |
boolean |
intersects(double x,
double y,
double w,
double h)
测试此 Shape 的内部是否与指定矩形坐标集的内部相交。 |
boolean |
intersects(Rectangle2D r)
测试 Shape 内部是否与指定 Rectangle2D 内部相交。 |
void |
lineTo(float x,
float y)
通过绘制一条从当前坐标到新指定坐标的直线在路径中添加点。 |
void |
moveTo(float x,
float y)
通过移动到指定的坐标在路径中添加点。 |
void |
quadTo(float x1,
float y1,
float x2,
float y2)
通过绘制与当前坐标及坐标 (x2,y2) 都相交的 Quadratic 曲线,并将指定点 (x1, y1) 用作二次曲线参数控制点,将由两个新点定义的曲线段添加到路径中。 |
void |
reset()
将路径重置为空。 |
void |
setWindingRule(int rule)
将此路径的缠绕规则设置为指定值。 |
void |
transform(AffineTransform at)
使用指定的 AffineTransform 变换此路径的几何形状。 |
从类 java.lang.Object 继承的方法 |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
public static final int WIND_EVEN_ODD
public static final int WIND_NON_ZERO
构造方法详细信息 |
---|
public GeneralPath()
GeneralPath
对象。如果对此路径执行的操作需要定义路径内部,则使用默认的 NON_ZERO 缠绕规则。
WIND_NON_ZERO
public GeneralPath(int rule)
GeneralPath
对象,使其具有指定缠绕规则以控制需要定义路径内部的操作。
rule
- 缠绕规则WIND_EVEN_ODD
,
WIND_NON_ZERO
public GeneralPath(int rule, int initialCapacity)
GeneralPath
对象,使其具有指定的缠绕规则和指定的初始容量,以存储路径坐标。此数是对路径中路径段的初始猜测值,但是储量可以根据需要扩展,以存储任何添加到此路径的路径段。
rule
- 缠绕规则initialCapacity
- 对路径中路径段数的估计WIND_EVEN_ODD
,
WIND_NON_ZERO
public GeneralPath(Shape s)
Shape
对象构造一个新 GeneralPath
对象。此路径的所有初始几何形状和缠绕规则均取自指定的 Shape
对象。
s
- 指定的 Shape
对象方法详细信息 |
---|
public void moveTo(float x, float y)
x, y
- 指定的坐标public void lineTo(float x, float y)
x, y
- 指定的坐标public void quadTo(float x1, float y1, float x2, float y2)
x1, y1
- 第一个二次曲线控制点的坐标x2, y2
- 最后一个端点的坐标public void curveTo(float x1, float y1, float x2, float y2, float x3, float y3)
x1, y1
- 第一个 Béezier 控制点的坐标x2, y2
- 第二个 Béezier 控制点的坐标x3, y3
- 最后一个端点的坐标public void closePath()
moveTo
的坐标绘制直线闭合当前子路径。如果已经闭合路径,则此方法无效。
public void append(Shape s, boolean connect)
Shape
对象的几何形状追加到路径中,可能使用一条线段将新几何形状连接到现有的路径段。如果 connect
参数为 true
并且路径非空,则追加的 Shape
几何形状的全部初始 moveTo
将被转换为 lineTo
段。如果这种连接 lineTo
段的目标坐标匹配目前开放子路径的结束坐标,则将该段作为多余段忽略。指定 Shape
的缠绕规则将被忽略,追加的几何形状由为此路径指定的缠绕规则来管理。
s
- 将其几何形状追加到此路径中的 Shape
connect
- 一个布尔值,用于控制是否将初始 moveTo
段转换为 lineTo
段,以将新几何形状连接到现有路径public void append(PathIterator pi, boolean connect)
PathIterator
对象的几何形状追加到路径中,可能使用一条线段将新几何形状连接到现有的路径段。如果 connect
参数为 true
并且路径非空,则追加 Shape
几何形状的初始 moveTo
将被转换为 lineTo
段。如果这种连接 lineTo
段的目标坐标匹配目前开放路径的结束坐标,则将该线段作为多余线段忽略。指定 Shape
的缠绕规则将被忽略,追加的几何形状由为此路径指定的缠绕规则来管理。
pi
- 其几何形状要被追加到此路径中的 PathIterator
connect
- 一个布尔值,用于控制是否将初始 moveTo
段转换为 lineTo
段,以将新几何形状连接到现有路径public int getWindingRule()
WIND_EVEN_ODD
,
WIND_NON_ZERO
,
setWindingRule(int)
public void setWindingRule(int rule)
rule
- 表示指定缠绕规则的整数
IllegalArgumentException
- 如果 rule
既不是 WIND_EVEN_ODD
也不是 WIND_NON_ZERO
WIND_EVEN_ODD
,
WIND_NON_ZERO
,
getWindingRule()
public Point2D getCurrentPoint()
Point2D
对象)。
Point2D
对象,如果路径中不存在点,则返回 null
。public void reset()
public void transform(AffineTransform at)
AffineTransform
变换此路径的几何形状。原地变换几何形状,它将永久更改由此对象定义的边界。
at
- 用于变换区域的 AffineTransform
public Shape createTransformedShape(AffineTransform at)
Shape
。
at
- 用于变换新 Shape
的 AffineTransform
。
Shape
,它是使用指定的 AffineTransform
变换的。public Rectangle getBounds()
Rectangle
对象。Shape.getBounds2D()
public Rectangle2D getBounds2D()
Shape
中的 getBounds2D
Rectangle2D
对象。Shape.getBounds()
public boolean contains(double x, double y)
Shape
的边界内。
x, y
- 指定的坐标
Shape
的边界内,则返回 true
;否则返回 false
。public boolean contains(Point2D p)
Point2D
是否在 Shape
的边界内。
p
- 指定的 Point2D
Shape
包含指定的 Point2D
,则返回 true
;否则返回 false
。public boolean contains(double x, double y, double w, double h)
Shape
的边界内。
x, y
- 指定的坐标w
- 指定矩形区域的宽度h
- 指定矩形区域的高度
Shape
包含指定的矩形区域,则返回 true
;否则返回 false
。Area
,
Shape.intersects(double, double, double, double)
public boolean contains(Rectangle2D r)
Rectangle2D
是否在 Shape
的边界内。
r
- 指定的 Rectangle2D
Shape
为指定的 Rectangle2D
划定边界,则返回 true
;否则返回 false
。Shape.contains(double, double, double, double)
public boolean intersects(double x, double y, double w, double h)
Shape
的内部是否与指定矩形坐标集的内部相交。
Shape
中的 intersects
x, y
- 指定的坐标w
- 指定矩形坐标的宽度h
- 指定矩形坐标的高度
Shape
与指定矩形坐标集的内部相交,则返回 true
;否则返回 false
。Area
public boolean intersects(Rectangle2D r)
Shape
内部是否与指定 Rectangle2D
内部相交。
Shape
中的 intersects
r
- 指定的 Rectangle2D
Shape
与指定 Rectangle2D
的内部相交,则返回 true
;否则返回 false
。Shape.intersects(double, double, double, double)
public PathIterator getPathIterator(AffineTransform at)
Shape
边界迭代并提供对 Shape
轮廓几何形状访问的 PathIterator
对象。此类的迭代器不是多线程安全的,这意味着此 GeneralPath
类不保证对此 GeneralPath
对象几何形状所作的修改不会对该几何形状中正在进行的迭代产生影响。
Shape
中的 getPathIterator
at
- AffineTransform
Shape
边界迭代并提供对 Shape
轮廓几何形状访问的新 PathIterator
public PathIterator getPathIterator(AffineTransform at, double flatness)
Shape
边界迭代并提供对 Shape
轮廓几何形状的访问的 PathIterator
对象。此类的迭代器不是多线程安全的,这意味着此 GeneralPath
类不保证对此 GeneralPath
对象几何形状所作的修改不会对该几何形状中正在进行的迭代产生影响。
Shape
中的 getPathIterator
at
- AffineTransform
flatness
- 允许用来近似曲线段的直线段偏离原始曲线上任一点的最大距离
Shape
边界迭代的新 PathIterator
。public Object clone()
OutOfMemoryError
- 如果没有足够的内存。Cloneable
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。