JavaTM Platform
Standard Ed. 6

java.awt.geom
インタフェース PathIterator

既知の実装クラスの一覧:
FlatteningPathIterator

public interface PathIterator

PathIterator インタフェースの提供する機構を使用すると、Shape インタフェースを実装するオブジェクトは、一度に 1 セグメント単位で境界のパスを取り出すことを呼び出し側に許可することで、その境界の幾何学的図形を返すことができます。このインタフェースは、1 次から 3 次までのベジェ曲線 (ラインおよび 2 次または 3 次ベジェスプライン) を使用することでそれらのオブジェクトがその境界のパスを取り出せるようにします。  

複数のサブパスは、「MOVETO」セグメントを使用して幾何学的図形を不連続にし、あるサブパスの最後から次のサブパスの先頭に移動することで表現できます。  

各サブパスは、サブパスの最後のセグメントをそのサブパスの先頭の「MOVETO」セグメントと同じ座標で終わらせるか、または「CLOSE」セグメントを使用して最後の点から最初の点までラインセグメントを追加することで手作業で終了することができます。「CLOSE」セグメントを使用してパスを閉じる以外の方法で輪郭を手作業で閉じると、サブパスの終点で異なる線種装飾が使用される可能性があります。たとえば、BasicStroke オブジェクトは「CLOSE」セグメントを検出した場合に最初の点と最後の点を結ぶために「JOIN」を線の装飾として使用しますが、最初の座標と同じ座標でパスを終わらせると、最後に「CAP」が線の装飾として使用されます。

関連項目:
Shape, BasicStroke

フィールドの概要
static int SEG_CLOSE
          先行するサブパスがもっとも新しい SEG_MOVETO に対応する点までのラインセグメントを追加することで閉じられなければならないことを指定するセグメント型定数です。
static int SEG_CUBICTO
          もっとも新しく指定された点から描画される 3 次パラメトリック曲線を指定する 3 つの点のセットのセグメント型定数です。
static int SEG_LINETO
          もっとも新しく指定された点から描画されるラインの終点を指定する点のセグメント型定数です。
static int SEG_MOVETO
          新しいサブパスの開始位置を指定する点のセグメント型定数です。
static int SEG_QUADTO
          もっとも新しく指定された点から描画される 2 次パラメトリック曲線を指定する点のペアのセグメント型定数です。
static int WIND_EVEN_ODD
          パスの内部を決めるために偶奇規則を指定する屈曲規則定数です。
static int WIND_NON_ZERO
          パスの内部を決めるために非ゼロ規則を指定する屈曲規則定数です。
 
メソッドの概要
 int currentSegment(double[] coords)
          繰り返し処理の現在のパスセグメントの座標および型を返します。
 int currentSegment(float[] coords)
          繰り返し処理の現在のパスセグメントの座標および型を返します。
 int getWindingRule()
          パスの内部を決める屈曲規則を返します。
 boolean isDone()
          繰り返し処理が完了したかどうかを判定します。
 void next()
          移動の順方向にまだ点がある場合に、その方向に沿ってパスの次のセグメントに反復子を移動します。
 

フィールドの詳細

WIND_EVEN_ODD

static final int WIND_EVEN_ODD
パスの内部を決めるために偶奇規則を指定する屈曲規則定数です。偶奇規則は、点から無限遠点に任意の方向に描画された光線がパスセグメントによって奇数回横切られる場合にその点がパスの内側にあることを指定します。

関連項目:
定数フィールド値

WIND_NON_ZERO

static final int WIND_NON_ZERO
パスの内部を決めるために非ゼロ規則を指定する屈曲規則定数です。非ゼロ規則は、点から無限遠点に描画された光線が、パスセグメントによって時計方向とは異なる回数で、反時計方向に横切られる場合にその点がパスの内側にあることを指定します。

関連項目:
定数フィールド値

SEG_MOVETO

static final int SEG_MOVETO
新しいサブパスの開始位置を指定する点のセグメント型定数です。

関連項目:
定数フィールド値

SEG_LINETO

static final int SEG_LINETO
もっとも新しく指定された点から描画されるラインの終点を指定する点のセグメント型定数です。

関連項目:
定数フィールド値

SEG_QUADTO

static final int SEG_QUADTO
もっとも新しく指定された点から描画される 2 次パラメトリック曲線を指定する点のペアのセグメント型定数です。曲線は、もっとも新しく指定された (現在の) 点 (CP)、最初の制御点 (P1)、および最後の補間された制御点 (P2) を使用して、範囲 (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)!)
 

関連項目:
定数フィールド値

SEG_CUBICTO

static final int SEG_CUBICTO
もっとも新しく指定された点から描画される 3 次パラメトリック曲線を指定する 3 つの点のセットのセグメント型定数です。曲線は、もっとも新しく指定された (現在の) 点 (CP)、最初の制御点 (P1)、2 番目の制御点 (P2)、および最後の補間された制御点 (P3) を使用して、範囲 (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)!)
 
この形の曲線は、一般にベジェ曲線として知られています。

関連項目:
定数フィールド値

SEG_CLOSE

static final int SEG_CLOSE
先行するサブパスがもっとも新しい SEG_MOVETO に対応する点までのラインセグメントを追加することで閉じられなければならないことを指定するセグメント型定数です。

関連項目:
定数フィールド値
メソッドの詳細

getWindingRule

int getWindingRule()
パスの内部を決める屈曲規則を返します。

戻り値:
屈曲規則
関連項目:
WIND_EVEN_ODD, WIND_NON_ZERO

isDone

boolean isDone()
繰り返し処理が完了したかどうかを判定します。

戻り値:
すべてのセグメントが読み込まれている場合は true、 そうでない場合は false

next

void next()
移動の順方向にまだ点がある場合に、その方向に沿ってパスの次のセグメントに反復子を移動します。


currentSegment

int currentSegment(float[] coords)
繰り返し処理の現在のパスセグメントの座標および型を返します。戻り値は、パスセグメントの型 (SEG_MOVETO、SEG_LINETO、SEG_QUADTO、SEG_CUBICTO、または SEG_CLOSE) です。長さ 6 の float 配列を渡さなければならず、それは点の座標を格納するために使用されます。各点は、float x,y 座標のペアとして格納されます。SEG_MOVETO 型および SEG_LINETO 型は 1 つの点を返し、SEG_QUADTO は 2 つの点を返し、SEG_CUBICTO は 3 つの点を返し、SEG_CLOSE は点を返しません。

パラメータ:
coords - このメソッドから返されるデータを保持する 配列
戻り値:
現在のパスセグメントの型
関連項目:
SEG_MOVETO, SEG_LINETO, SEG_QUADTO, SEG_CUBICTO, SEG_CLOSE

currentSegment

int currentSegment(double[] coords)
繰り返し処理の現在のパスセグメントの座標および型を返します。戻り値は、パスセグメントの型 (SEG_MOVETO、SEG_LINETO、SEG_QUADTO、SEG_CUBICTO、または SEG_CLOSE) です。長さ 6 の double 配列を返さなければならず、それは点の座標を格納するために使用されます。各点は、double x,y 座標のペアとして格納されます。SEG_MOVETO 型および SEG_LINETO 型は 1 つの点を返し、SEG_QUADTO は 2 つの点を返し、SEG_CUBICTO は 3 つの点を返し、SEG_CLOSE は点を返しません。

パラメータ:
coords - このメソッドから返されるデータを保持する 配列
戻り値:
現在のパスセグメントの型
関連項目:
SEG_MOVETO, SEG_LINETO, SEG_QUADTO, SEG_CUBICTO, SEG_CLOSE

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。