クラスBasicStroke

java.lang.Object
java.awt.BasicStroke
すべての実装されたインタフェース:
Stroke

public class BasicStroke extends Object implements Stroke
BasicStrokeクラスは、Stroke属性セットがこのBasicStrokeに設定されたGraphics2Dオブジェクトでレンダリングされるグラフィックス・プリミティブの輪郭のためのレンダリング属性の基本セットを定義します。 BasicStrokeで定義される描画属性は、Shapeの輪郭をなぞってペンで描画される記号の形状、およびShapeの輪郭線セグメントの端部と接合部の装飾を記述します。 このような描画属性には次のようなものがあります。
width
ペンの軌跡に対して垂直方向のペンの幅
先端
閉じられていない部分輪郭線セグメントと破線セグメントの両端の装飾。 部分輪郭線の起点と終点が同じ場合でも、CLOSEセグメントがない場合は閉じていないとみなされる。 CLOSEセグメントの詳細については、SEG_CLOSEを参照。 3つの異なる装飾として、CAP_BUTTCAP_ROUND、およびCAP_SQUAREがある。
ライン接合
2つの輪郭線セグメントの交点、およびSEG_CLOSEで閉じられる部分輪郭線の両端の交点の装飾。 3つの異なる装飾として、JOIN_BEVELJOIN_MITER、およびJOIN_ROUNDがある。
接合制限値
JOIN_MITER装飾のライン接合のトリミングを行う制限値。 ライン接合のトリミングは、接合の長さのストローク幅に対する割合が、接合制限値を超えた場合に実行される。 接合の長さは接合部分の対角線の長さであり、交点の内側の角から外側の角までの距離である。 2つのライン・セグメントの角度が小さくなればなるほど、接合部分は長くなり、交差角度は小さくなる。 デフォルトの接合制限値10.0fでは、角度が11度より小さくなった場合にトリミングを行う。 接合のトリミングではライン接合の装飾が斜影に変換される
破線属性
不透明部分と透明部分とが交互になるようにして破線を作成する方法の定義
返される輪郭線の形状を制御する寸法や距離を指定するすべての属性は、ストロークのないオリジナルのShape引数と同じ座標系で測定されます。 Graphics2DオブジェクトがStrokeオブジェクトを使ってdrawメソッドの1つを実行している場合に輪郭線を再定義する場合、Graphics2D変換による属性が適用される前のオリジナルの幾何学的図形が使用されます。 このため、ペン幅などの属性はGraphics2Dオブジェクトのユーザー空間座標系の値として解釈され、その特定のGraphics2Dにおいてユーザー空間からデバイス空間に変換する場合に、スケーリング効果とシャーリング効果の影響を受けます。 たとえば、描画される図形の輪郭の幅の決定には、このBasicStrokeの幅属性だけでなく、Graphics2Dオブジェクトの変換属性も影響します。 次のコードを参照してください。
     // sets the Graphics2D object's Transform attribute
     g2d.scale(10, 10);
     // sets the Graphics2D object's Stroke attribute
     g2d.setStroke(new BasicStroke(1.5f));
Graphics2Dオブジェクトにほかのスケーリング変換が追加されていない場合、生成されるラインの幅は約15ピクセルになります。 サンプル・コードで示されているように、特にGraphics2Dオブジェクトを使用して大規模な変換が実行される場合は、浮動小数点ラインの方が精度が高くなります。 対角線の場合、正確な幅は、描画パイプラインが理論上の幅の輪郭をなぞる際に、どのピクセル上に描画するかで決定されます。 描画対象ピクセルの選択にはアンチエイリアシング属性も影響します。アンチエイリアシング描画パイプラインは、部分的に覆われるピクセルも描画対象として選択できるためです。

ユーザー空間座標系と描画プロセスについては、Graphics2Dクラスの説明を参照してください。

関連項目:
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final int
    装飾を付けずに、閉じられていない部分輪郭線および破線セグメントを終了します。
    static final int
    ペン幅の半分の長さを半径とした丸い装飾を付けて、閉じられていない部分輪郭線および破線セグメントを終了します。
    static final int
    ライン幅の半分の長さに等しい距離だけセグメントの先端を延長する正方形を付けて、閉じられていない部分輪郭線および破線セグメントを終了します。
    static final int
    幅の広い輪郭線の外側の角を直線セグメントに接合するようにして輪郭線セグメントを接合します。
    static final int
    輪郭線セグメントの外側の端が重なるまで延長して輪郭線セグメントを接合します。
    static final int
    ライン幅の半分の長さを半径として、角を丸く切り落として輪郭線セグメントを接合します。
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    すべての属性にデフォルト値を使用して、新しいBasicStrokeを構築します。
    BasicStroke(float width)
    指定された線の幅と、先端およびライン接合のスタイルのデフォルト値を使用して、実線のBasicStrokeを構築します。
    BasicStroke(float width, int cap, int join)
    指定された属性を使用して、実線のBasicStrokeを構築します。
    BasicStroke(float width, int cap, int join, float miterlimit)
    指定された属性を使用して、実線のBasicStrokeを構築します。
    BasicStroke(float width, int cap, int join, float miterlimit, float[] dash, float dash_phase)
    指定された属性を使用して、新しいBasicStrokeを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    指定されたShapeのストロークで描画された輪郭が内部で定義されているShapeを返します。
    boolean
    最初に、指定されたオブジェクトがBasicStrokeであるかどうかをテストし、次にその幅、接合、先端、接合制限値、破線、および破線フェーズ属性をこのBasicStrokeの各属性と比較することによって、そのオブジェクトがこのBasicStrokeに等しいかどうかをテストします。
    float[]
    破線セグメントの長さを表す配列を返します。
    float
    現在の破線フェーズを返します。
    int
    先端のスタイルを返します。
    int
    ライン接合のスタイルを返します。
    float
    ラインの幅を返します。
    float
    接合制限値を返します。
    int
    このストロークのハッシュ・コードを返します。

    クラスオブジェクトで宣言されたメソッド

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • フィールド詳細

    • JOIN_MITER

      @Native public static final int JOIN_MITER
      輪郭線セグメントの外側の端が重なるまで延長して輪郭線セグメントを接合します。
      関連項目:
    • JOIN_ROUND

      @Native public static final int JOIN_ROUND
      ライン幅の半分の長さを半径として、角を丸く切り落として輪郭線セグメントを接合します。
      関連項目:
    • JOIN_BEVEL

      @Native public static final int JOIN_BEVEL
      幅の広い輪郭線の外側の角を直線セグメントに接合するようにして輪郭線セグメントを接合します。
      関連項目:
    • CAP_BUTT

      @Native public static final int CAP_BUTT
      装飾を付けずに、閉じられていない部分輪郭線および破線セグメントを終了します。
      関連項目:
    • CAP_ROUND

      @Native public static final int CAP_ROUND
      ペン幅の半分の長さを半径とした丸い装飾を付けて、閉じられていない部分輪郭線および破線セグメントを終了します。
      関連項目:
    • CAP_SQUARE

      @Native public static final int CAP_SQUARE
      ライン幅の半分の長さに等しい距離だけセグメントの先端を延長する正方形を付けて、閉じられていない部分輪郭線および破線セグメントを終了します。
      関連項目:
  • コンストラクタの詳細

    • BasicStroke

      @ConstructorProperties({"lineWidth","endCap","lineJoin","miterLimit","dashArray","dashPhase"}) public BasicStroke(float width, int cap, int join, float miterlimit, float[] dash, float dash_phase)
      指定された属性を使用して、新しいBasicStrokeを構築します。
      パラメータ:
      width - このBasicStrokeの幅。 幅は0.0f以上でなければならない。 幅が0.0fに設定されている場合、ストロークは対象のデバイス上のもっとも細いラインとして描画される。また、このときアンチエイリアス・ヒント設定が使用される
      cap - BasicStrokeの両端の装飾
      join - 輪郭線セグメントの接合部の装飾
      miterlimit - 接合トリミングの制限値。 miterlimitは1.0f以上でなければならない
      dash - 破線パターンを表す配列
      dash_phase - 破線パターン開始位置のオフセット
      スロー:
      IllegalArgumentException - widthが負である場合
      IllegalArgumentException - capがCAP_BUTT、CAP_ROUND、CAP_SQUAREのいずれでもない場合
      IllegalArgumentException - miterlimitが1より小さく、joinがJOIN_MITERである場合
      IllegalArgumentException - joinがJOIN_ROUND、JOIN_BEVEL、JOIN_MITERのいずれでもない場合
      IllegalArgumentException - dash_phaseが負の値で、dashnullでない場合
      IllegalArgumentException - dashの長さがゼロの場合
      IllegalArgumentException - 破線の長さがすべてゼロの場合
    • BasicStroke

      public BasicStroke(float width, int cap, int join, float miterlimit)
      指定された属性を使用して、実線のBasicStrokeを構築します。
      パラメータ:
      width - BasicStrokeの幅。
      cap - BasicStrokeの両端の装飾
      join - 輪郭線セグメントの接合部の装飾
      miterlimit - 接合トリミングの制限値
      スロー:
      IllegalArgumentException - widthが負である場合
      IllegalArgumentException - capがCAP_BUTT、CAP_ROUND、CAP_SQUAREのいずれでもない場合
      IllegalArgumentException - miterlimitが1より小さく、joinがJOIN_MITERである場合
      IllegalArgumentException - joinがJOIN_ROUND、JOIN_BEVEL、JOIN_MITERのいずれでもない場合
    • BasicStroke

      public BasicStroke(float width, int cap, int join)
      指定された属性を使用して、実線のBasicStrokeを構築します。 デフォルト値でかまわない場合や、ライン接合がJOIN_MITERに指定されていない場合は、miterlimitパラメータは不要です。
      パラメータ:
      width - BasicStrokeの幅。
      cap - BasicStrokeの両端の装飾
      join - 輪郭線セグメントの接合部の装飾
      スロー:
      IllegalArgumentException - widthが負である場合
      IllegalArgumentException - capがCAP_BUTT、CAP_ROUND、CAP_SQUAREのいずれでもない場合
      IllegalArgumentException - joinがJOIN_ROUND、JOIN_BEVEL、JOIN_MITERのいずれでもない場合
    • BasicStroke

      public BasicStroke(float width)
      指定された線の幅と、先端およびライン接合のスタイルのデフォルト値を使用して、実線のBasicStrokeを構築します。
      パラメータ:
      width - BasicStrokeの幅。
      スロー:
      IllegalArgumentException - widthが負である場合
    • BasicStroke

      public BasicStroke()
      すべての属性にデフォルト値を使用して、新しいBasicStrokeを構築します。 デフォルトの属性は、実線の幅1.0、CAP_SQUARE、JOIN_MITER、接合制限値10.0です。
  • メソッドの詳細

    • createStrokedShape

      public Shape createStrokedShape(Shape s)
      指定されたShapeのストロークで描画された輪郭が内部で定義されているShapeを返します。
      定義:
      createStrokedShape、インタフェースStroke
      パラメータ:
      s - ストロークで描画されるShapeの境界
      戻り値:
      ストロークで描画された輪郭を表すShape
      スロー:
      NullPointerException - snullである場合
    • getLineWidth

      public float getLineWidth()
      ラインの幅を返します。 Java 2Dでデフォルトの座標空間として使用されるユーザー空間での値が返されます。 ユーザー空間の座標系については、Graphics2Dクラスの解説を参照してください。
      戻り値:
      このBasicStrokeのライン幅
      関連項目:
    • getEndCap

      public int getEndCap()
      先端のスタイルを返します。
      戻り値:
      このBasicStrokeの先端のスタイル。先端のスタイルを定義するstatic int値として返される
    • getLineJoin

      public int getLineJoin()
      ライン接合のスタイルを返します。
      戻り値:
      BasicStrokeのライン接合のスタイル。ライン接合のスタイルを定義するstatic int値として返される
    • getMiterLimit

      public float getMiterLimit()
      接合制限値を返します。
      戻り値:
      BasicStrokeの接合制限値
    • getDashArray

      public float[] getDashArray()
      破線セグメントの長さを表す配列を返します。 配列内のエントリが、破線の不透明セグメントと透明セグメントのユーザー空間での長さを交互に表します。 ストロークで描画されるShapeの輪郭に沿ってペンが移動するにつれて、ペンが移動するユーザー空間の距離が累積されます。 距離の値は、破線配列のインデックスに使用されます。 現在の累積距離が破線配列の偶数番目の要素にマッピングされる場合、ペンは不透明になり、奇数番目の要素にマッピングされる場合は透明になります。
      戻り値:
      破線配列
    • getDashPhase

      public float getDashPhase()
      現在の破線フェーズを返します。 破線フェーズは、破線パターン内でのオフセットを表すユーザー空間で指定された距離です。 つまり、破線フェーズは、ストロークの先頭に対応する破線パターン内の点を定義します。
      戻り値:
      float値の破線フェーズ
    • hashCode

      public int hashCode()
      このストロークのハッシュ・コードを返します。
      オーバーライド:
      hashCode、クラスObject
      戻り値:
      このストロークのハッシュ・コード。
      関連項目:
    • equals

      public boolean equals(Object obj)
      最初に、指定されたオブジェクトがBasicStrokeであるかどうかをテストし、次にその幅、接合、先端、接合制限値、破線、および破線フェーズ属性をこのBasicStrokeの各属性と比較することによって、そのオブジェクトがこのBasicStrokeに等しいかどうかをテストします。
      オーバーライド:
      equals、クラスObject
      パラメータ:
      obj - このBasicStrokeと比較するオブジェクト
      戻り値:
      2つのオブジェクトの幅、接合、先端、接合制限値、破線、および破線フェーズが同じ場合はtrue、そうでない場合はfalse
      関連項目: