- java.lang.Object
-
- java.awt.geom.FlatteningPathIterator
-
- All Implemented Interfaces:
-
PathIterator
public class FlatteningPathIterator extends Object implements PathIterator
FlatteningPathIterator
类返回另一个PathIterator
对象的扁平化视图。 其他Shape
类可以使用此类为其路径提供扁平化行为,而不必自己执行插值计算。
-
-
Field Summary
-
Fields inherited from interface java.awt.geom.PathIterator
SEG_CLOSE, SEG_CUBICTO, SEG_LINETO, SEG_MOVETO, SEG_QUADTO, WIND_EVEN_ODD, WIND_NON_ZERO
-
-
构造方法摘要
构造方法 Constructor 描述 FlatteningPathIterator(PathIterator src, double flatness)
构造一个新的FlatteningPathIterator
对象,使其在遍历它时平坦化一个路径。FlatteningPathIterator(PathIterator src, double flatness, int limit)
构造一个新的FlatteningPathIterator
对象,在对其进行迭代时使其FlatteningPathIterator
。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 int
currentSegment(double[] coords)
返回迭代中当前路径段的坐标和类型。int
currentSegment(float[] coords)
返回迭代中当前路径段的坐标和类型。double
getFlatness()
返回此迭代器的平坦度。int
getRecursionLimit()
返回此迭代器的递归限制。int
getWindingRule()
返回确定路径内部的绕组规则。boolean
isDone()
测试迭代是否完成。void
next()
只要在该方向上有更多的点,将迭代器沿着遍历的主要方向向前移动到路径的下一个段。
-
-
-
构造方法详细信息
-
FlatteningPathIterator
public FlatteningPathIterator(PathIterator src, double flatness)
构造一个新的FlatteningPathIterator
对象,使其在遍历它时平坦化一个路径。 迭代器不会将从源迭代器读取的任何曲线细分为超过10个细分级别,每个曲线最多可产生1024个线段。- 参数
-
src
- 重复的原始未平坦的路径 -
flatness
- 控制点与平坦曲线之间的最大允许距离
-
FlatteningPathIterator
public FlatteningPathIterator(PathIterator src, double flatness, int limit)
构造一个新的FlatteningPathIterator
对象,在对其进行迭代时FlatteningPathIterator
对象平坦化。limit
参数允许您控制迭代器可以在假定曲线足够平坦,而不对flatness
参数进行测量之前可以进行的递归细分的最大数量。 因此,平坦化的迭代不会产生每曲线最多(2^limit)
线段。- 参数
-
src
- 原始的未平坦的路径被迭代 -
flatness
- 控制点和平坦曲线之间的最大允许距离 -
limit
- 允许任何曲线段的递归细分的最大数量 - 异常
-
IllegalArgumentException
- 如果flatness
或limit
小于零
-
-
方法详细信息
-
getFlatness
public double getFlatness()
返回此迭代器的平坦度。- 结果
-
平坦度这
FlatteningPathIterator
。
-
getRecursionLimit
public int getRecursionLimit()
返回此迭代器的递归限制。- 结果
-
这个
FlatteningPathIterator
的递归限制。
-
getWindingRule
public int getWindingRule()
返回确定路径内部的绕组规则。- Specified by:
-
getWindingRule
在接口PathIterator
- 结果
- 原始未平坦路径的绕组规则被迭代。
- 另请参见:
-
PathIterator.WIND_EVEN_ODD
,PathIterator.WIND_NON_ZERO
-
isDone
public boolean isDone()
测试迭代是否完成。- Specified by:
-
isDone
在接口PathIterator
- 结果
-
true
如果所有段已被读取; 否则为false
。
-
next
public void next()
只要在该方向上有更多的点,将迭代器沿着遍历的主要方向向前移动到路径的下一个段。- Specified by:
-
next
在接口PathIterator
-
currentSegment
public int currentSegment(float[] coords)
返回迭代中当前路径段的坐标和类型。 返回值是路径段类型:SEG_MOVETO,SEG_LINETO或SEG_CLOSE。 必须传入长度为6的浮点数组,并可用于存储点的坐标。 每个点存储为一对浮点x,y坐标。 SEG_MOVETO和SEG_LINETO类型返回一个点,并且SEG_CLOSE不返回任何点。- Specified by:
-
currentSegment
在接口PathIterator
- 参数
-
coords
- 保存从此方法返回的数据的数组 - 结果
- 当前路径段的路径段类型。
- 异常
-
NoSuchElementException
- 如果在平坦化路径中没有更多要返回的元素。 - 另请参见:
-
PathIterator.SEG_MOVETO
,PathIterator.SEG_LINETO
,PathIterator.SEG_CLOSE
-
currentSegment
public int currentSegment(double[] coords)
返回迭代中当前路径段的坐标和类型。 返回值是路径段类型:SEG_MOVETO,SEG_LINETO或SEG_CLOSE。 必须传入长度为6的双数组,并可用于存储点的坐标。 每个点被存储为一对双x,y坐标。 SEG_MOVETO和SEG_LINETO类型返回一个点,并且SEG_CLOSE不返回任何点。- Specified by:
-
currentSegment
在接口PathIterator
- 参数
-
coords
- 保存从此方法返回的数据的数组 - 结果
- 当前路径段的路径段类型。
- 异常
-
NoSuchElementException
- 如果在平坦化路径中没有更多要返回的元素。 - 另请参见:
-
PathIterator.SEG_MOVETO
,PathIterator.SEG_LINETO
,PathIterator.SEG_CLOSE
-
-