モジュール java.desktop
パッケージ java.awt.geom

クラスFlatteningPathIterator

  • すべての実装されたインタフェース:
    PathIterator

    public class FlatteningPathIterator
    extends Object
    implements PathIterator
    FlatteningPathIteratorクラスは別のPathIteratorオブジェクトの平坦化されたビューを返します。 その他のShapeクラスでこのクラスを使用すると、各クラス自体で補間計算を実行しなくても、そのパスの平坦化動作を実現できます。
    • コンストラクタの詳細

      • FlatteningPathIterator

        public FlatteningPathIterator​(PathIterator src,
                                      double flatness)
        反復のたびにパスを平坦化する新しいFlatteningPathIteratorオブジェクトを構築します。 イテレータは、ソース・イテレータから読み取られた曲線を、曲線あたり最大1024ライン・セグメントが生成される10レベルを超える分割に分割しません。
        パラメータ:
        src - 反復対象の平坦化されていない元のパス
        flatness - 制御点と平坦化された曲線の最大許容距離
      • FlatteningPathIterator

        public FlatteningPathIterator​(PathIterator src,
                                      double flatness,
                                      int limit)
        反復のたびにパスを平坦化する新しいFlatteningPathIteratorオブジェクトを構築します。 limitパラメータを使用すると、イテレータがflatnessパラメータに対して測定することなく、曲線が十分に平坦であると見なすまでに作成できる再帰的分割の最大数を制御できます。 そのため、平坦化の反復によって、曲線あたり最大(2^limit)を超えるライン・セグメントが生成されることはありません。
        パラメータ:
        src - 反復対象の平坦化されていない元のパス
        flatness - 制御点と平坦化された曲線の最大許容距離
        limit - 任意の曲線セグメントに許可される再帰的分割の最大数
        例外:
        IllegalArgumentException - flatnessまたはlimitが0より小さい場合
    • メソッドの詳細

      • getFlatness

        public double getFlatness()
        このイテレータのフラットネスを返します。
        戻り値:
        このFlatteningPathIteratorのフラットネス。
      • getRecursionLimit

        public int getRecursionLimit()
        このイテレータの再帰制限を返します。
        戻り値:
        このFlatteningPathIteratorの再帰制限。
      • isDone

        public boolean isDone()
        繰返し処理が完了したかどうかを判定します。
        定義:
        isDone、インタフェースPathIterator
        戻り値:
        すべてのセグメントが読み込まれている場合はtrue、そうでない場合はfalse
      • next

        public void next()
        移動の順方向にまだ点がある場合に、その方向に沿ってパスの次のセグメントにイテレータを移動します。
        定義:
        next、インタフェースPathIterator
      • currentSegment

        public int currentSegment​(float[] coords)
        繰返し処理の現在のパス・セグメントの座標および型を返します。 戻り値はパス・セグメントのタイプであり、SEG_MOVETO、SEG_LINETO、SEG_CLOSEのいずれかです。 長さ6のfloat配列を渡さなければならず、それは点の座標を格納するために使用されます。 各点は、float x,y座標のペアとして格納されます。 SEG_MOVETO型およびSEG_LINETO型は1つの点を返し、SEG_CLOSEは点を返しません。
        定義:
        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のdouble配列を返さなければならず、それは点の座標を格納するために使用されます。 各点は、double x,y座標のペアとして格納されます。 SEG_MOVETO型およびSEG_LINETO型は1つの点を返し、SEG_CLOSEは点を返しません。
        定義:
        currentSegment、インタフェースPathIterator
        パラメータ:
        coords - このメソッドから返されるデータを保持する配列
        戻り値:
        現在のパス・セグメントのタイプ。
        例外:
        NoSuchElementException - 平坦化するパスに返す要素がない場合。
        関連項目:
        PathIterator.SEG_MOVETO, PathIterator.SEG_LINETO, PathIterator.SEG_CLOSE