モジュール java.desktop
パッケージ 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クラスの説明を参照してください。

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

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

      コンストラクタ 
      コンストラクタ 説明
      BasicStroke()
      すべての属性にデフォルト値を使用して、新しい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 createStrokedShape​(Shape s)
      指定されたShapeのストロークで描画された輪郭が内部で定義されているShapeを返します。
      boolean equals​(Object obj)
      最初に、指定されたオブジェクトがBasicStrokeであるかどうかをテストし、次にその幅、接合、先端、接合制限値、破線、および破線フェーズ属性をこのBasicStrokeの各属性と比較することによって、そのオブジェクトがこのBasicStrokeに等しいかどうかをテストします。
      float[] getDashArray()
      破線セグメントの長さを表す配列を返します。
      float getDashPhase()
      現在の破線フェーズを返します。
      int getEndCap()
      先端のスタイルを返します。
      int getLineJoin()
      ライン接合のスタイルを返します。
      float getLineWidth()
      ラインの幅を返します。
      float getMiterLimit()
      接合制限値を返します。
      int hashCode()
      このストロークのハッシュ・コードを返します。
    • フィールドの詳細

      • 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
      • getLineWidth

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

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