Module  java.desktop
软件包  java.awt.geom

Class FlatteningPathIterator

  • All Implemented Interfaces:
    PathIterator


    public class FlatteningPathIterator
    extends Object
    implements PathIterator
    FlatteningPathIterator类返回另一个PathIterator对象的扁平化视图。 其他Shape类可以使用此类为其路径提供扁平化行为,而不必自己执行插值计算。
    • 构造方法详细信息

      • 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 - 如果 flatnesslimit小于零
    • 方法详细信息

      • getFlatness

        public double getFlatness​()
        返回此迭代器的平坦度。
        结果
        平坦度这 FlatteningPathIterator
      • getRecursionLimit

        public int getRecursionLimit​()
        返回此迭代器的递归限制。
        结果
        这个 FlatteningPathIterator的递归限制。
      • 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_MOVETOPathIterator.SEG_LINETOPathIterator.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_MOVETOPathIterator.SEG_LINETOPathIterator.SEG_CLOSE