public interface PathIterator
PathIterator
接口通过允许调用者一次一段地获取边界的路径,为实现 Shape
接口的对象提供返回其边界几何形状的机制。此接口允许这些对象一次一段地获取其边界,方法是使用从一阶到三阶 Bézier 曲线,这些曲线是直线、二次或三次 Bézier 样条。
多个子路径可以通过使用 "MOVETO" 段在几何形状中创建间断性以从一个子路径的结尾移动到下一个子路径的开头来表示。
每个子路径都可以被手动关闭,方法是在该子路径的起始 "MOVETO" 段所在的坐标上结束子路径中的最后一段,或者使用 "CLOSE" 段追加一条线段连接最后一点和第一点。应该知道,相对于使用 "CLOSE" 段关闭路径而言,手动关闭轮廓可能导致在子路径的结束点使用不同的线风格装饰。例如,BasicStroke
对象使用线 "JOIN" 装饰来连接第一点和最后一点(如果遇到 "CLOSE" 段),而在该开头坐标上结束路径将导致在结尾使用线 "CAP" 装饰。
Shape
,
BasicStroke
字段摘要 | |
---|---|
static int |
SEG_CLOSE 该段类型常量指定应该通过将线段追加到与最新 SEG_MOVETO 对应的点来关闭前面的子路径。 |
static int |
SEG_CUBICTO 该段类型常量针对某个 3 个点的集合,指定要根据最新指定点绘制的三次参数曲线。 |
static int |
SEG_LINETO 该段类型常量针对某个点,指定要根据最新指定点绘制的线的结束点。 |
static int |
SEG_MOVETO 该段类型常量针对某个点,指定新子路径的起始位置。 |
static int |
SEG_QUADTO 该段类型常量针对某对点,指定要根据最新指定点绘制的二次参数曲线。 |
static int |
WIND_EVEN_ODD 用于指定确定路径内部的奇偶规则的旋绕规则常量。 |
static int |
WIND_NON_ZERO 用于指定确定路径内部的非零规则的旋绕规则常量。 |
方法摘要 | |
---|---|
int |
currentSegment(double[] coords) 使用迭代返回当前路径段的坐标和类型。 |
int |
currentSegment(float[] coords) 使用迭代返回当前路径段的坐标和类型。 |
int |
getWindingRule() 返回用于确定路径迭代的旋绕规则。 |
boolean |
isDone() 测试迭代是否完成。 |
void |
next() 只要最初的遍历方向上还存在点,就沿该方向将迭代器移动到下一个路径段。 |
字段详细信息 |
---|
static final int WIND_EVEN_ODD
static final int WIND_NON_ZERO
static final int SEG_MOVETO
static final int SEG_LINETO
static final int SEG_QUADTO
(t=[0..1])
范围内解参数控制方程来内插。此曲线的参数控制方程为:
P(t) = B(2,0)*CP + B(2,1)*P1 + B(2,2)*P2 0 <= t <= 1 B(n,m) = mth coefficient of nth degree Bernstein polynomial = C(n,m) * t^(m) * (1 - t)^(n-m) C(n,m) = Combinations of n things, taken m at a time = n! / (m! * (n-m)!)
static final int SEG_CUBICTO
(t=[0..1])
范围内解参数控制方程来内插。此曲线的参数控制方程为:
P(t) = B(3,0)*CP + B(3,1)*P1 + B(3,2)*P2 + B(3,3)*P3 0 <= t <= 1 B(n,m) = mth coefficient of nth degree Bernstein polynomial = C(n,m) * t^(m) * (1 - t)^(n-m) C(n,m) = Combinations of n things, taken m at a time = n! / (m! * (n-m)!)这一形式的曲线通常称为 Bézier 曲线。
static final int SEG_CLOSE
方法详细信息 |
---|
int getWindingRule()
WIND_EVEN_ODD
,
WIND_NON_ZERO
boolean isDone()
true
;否则返回
false
。
void next()
int currentSegment(float[] coords)
coords
- 保存从此方法返回数据的数组
SEG_MOVETO
,
SEG_LINETO
,
SEG_QUADTO
,
SEG_CUBICTO
,
SEG_CLOSE
int currentSegment(double[] coords)
coords
- 保存从此方法返回数据的数组
SEG_MOVETO
,
SEG_LINETO
,
SEG_QUADTO
,
SEG_CUBICTO
,
SEG_CLOSE