public interface PathIterator
PathIterator
インタフェースの提供するメカニズムを使用すると、Shape
インタフェースを実装するオブジェクトは、一度に1セグメント単位で境界のパスを取り出すことを呼出し側に許可することで、その境界の幾何学的図形を返すことができます。このインタフェースでは、ラインおよび2次または3次ベジェ・スプラインである1次から3次までのベジェ曲線を使用することによって、これらのオブジェクトがその境界のパスを一度に1セグメントずつ取り出せるようにします。
複数のサブパスは、「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()
移動の順方向にまだ点がある場合に、その方向に沿ってパスの次のセグメントにイテレータを移動します。
|
@Native static final int WIND_EVEN_ODD
@Native static final int WIND_NON_ZERO
@Native static final int SEG_LINETO
@Native static final int SEG_QUADTO
(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)!)
@Native static final int SEG_CUBICTO
(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)!)この形式の曲線は一般に、ベジェ曲線と呼ばれます。
int getWindingRule()
WIND_EVEN_ODD
, WIND_NON_ZERO
boolean isDone()
true
、そうでない場合はfalse
。void next()
int currentSegment(float[] coords)
coords
- このメソッドから返されるデータを保持する配列SEG_MOVETO
, SEG_LINETO
, SEG_QUADTO
, SEG_CUBICTO
, SEG_CLOSE
int currentSegment(double[] coords)
coords
- このメソッドから返されるデータを保持する配列SEG_MOVETO
, SEG_LINETO
, SEG_QUADTO
, SEG_CUBICTO
, SEG_CLOSE
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2016, Oracle and/or its affiliates. All rights reserved.Use is subject to license termsDocumentation Redistribution Policyも参照してください。