所有类


java.awt.geom
类 FlatteningPathIterator

java.lang.Object
  继承者 java.awt.geom.FlatteningPathIterator
所有已实现的接口:
PathIterator

public class FlatteningPathIterator
   
   
   
   
   
extends Object
implements PathIterator

FlatteningPathIterator 类返回另一个 PathIterator 对象的变平视图。其他 Shape 类可以使用此类为其路径提供变平行为,无需自己进行插值计算。


字段摘要
 
从接口 java.awt.geom.PathIterator 继承的字段
SEG_CLOSE, SEG_CUBICTO, SEG_LINETO, SEG_MOVETO, SEG_QUADTO, WIND_EVEN_ODD, WIND_NON_ZERO
 
构造方法摘要
FlatteningPathIterator(PathIterator src, double flatness)
          构造一个在路径上迭代时能使路径变平的新 FlatteningPathIterator 对象。
FlatteningPathIterator(PathIterator src, double flatness, int limit)
          构造一个在路径上迭代时能使路径变平的新 FlatteningPathIterator 对象。
 
方法摘要
 intcurrentSegment(double[] coords)
          使用迭代返回当前路径段的坐标和类型。
 intcurrentSegment(float[] coords)
          使用迭代返回当前路径段的坐标和类型。
 doublegetFlatness()
          返回此迭代器的平面度。
 intgetRecursionLimit()
          返回此迭代器的递归限制。
 intgetWindingRule()
          返回用于确定路径迭代的缠绕规则。
 booleanisDone()
          测试迭代是否完成。
 voidnext()
          只要最初的遍历方向上存在多个点,就沿该方向将迭代器移动到下一个路径段。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

FlatteningPathIterator

public FlatteningPathIterator(PathIterator src,
                              double flatness)
构造一个在路径上迭代时能使路径变平的新 FlatteningPathIterator 对象。迭代器不会将从源迭代器读取的任何曲线细分至 10 级以上,10 级以上的细分超过了每曲线 1024 个线段这一最大值。

参数:
src - 要在其上迭代的未变平初始路径
flatness - 控制点与变平曲线间允许的最大距离

FlatteningPathIterator

public FlatteningPathIterator(PathIterator src,
                              double flatness,
                              int limit)
构造一个在路径上迭代时能使路径变平的新 FlatteningPathIterator 对象。可以使用 limit 参数控制迭代器在不依靠 flatness 参数进行测量的情况下假定曲线已经足够平之前,可以进行的最大递归细分次数。因此,变平迭代永远不会为每个曲线生成多于最大值 (2^limit) 的线段数。

参数:
src - 要在其上迭代的未变平初始路径
flatness - 控制点到变平曲线间允许的最大距离
limit - 允许对任何曲线段进行递归细分的最大次数
抛出:
IllegalArgumentException - 如果 flatnesslimit 小于零。
方法详细信息

getFlatness

public double getFlatness()
返回此迭代器的平面度。

返回:
FlatteningPathIterator 的平面度。

getRecursionLimit

public int getRecursionLimit()
返回此迭代器的递归限制。

返回:
FlatteningPathIterator 的递归限制。

getWindingRule

public int getWindingRule()
返回用于确定路径迭代的缠绕规则。

指定者:
接口 PathIterator 中的 getWindingRule
返回:
要在其上进行迭代的未变平初始路径的缠绕规则。
另请参见:
PathIterator.WIND_EVEN_ODD, PathIterator.WIND_NON_ZERO

isDone

public boolean isDone()
测试迭代是否完成。

指定者:
接口 PathIterator 中的 isDone
返回:
如果已经读取了所有的段,则返回 true;否则返回 false

next

public void next()
只要最初的遍历方向上存在多个点,就沿该方向将迭代器移动到下一个路径段。

指定者:
接口 PathIterator 中的 next

currentSegment

public int currentSegment(float[] coords)
使用迭代返回当前路径段的坐标和类型。返回值就是路径段类型:SEG_MOVETO、SEG_LINETO 或 SEG_CLOSE。必须传入长度为 6 的 float 数组,该数组可用于存储点的坐标。每个点都存储为一对 float x、y 坐标。SEG_MOVETO 和 SEG_LINETO 类型均返回一个点,而 SEG_CLOSE 不返回点。

指定者:
接口 PathIterator 中的 currentSegment
参数:
coords - 保存从此方法返回数据的数组
返回:
当前路径段的路径段类型。
抛出:
NoSuchElementException - 如果在要返回的变平路径中不存在多个元素。
另请参见:
PathIterator.SEG_MOVETO, PathIterator.SEG_LINETO, PathIterator.SEG_CLOSE