java.lang.Object
java.awt.BasicStroke
- すべての実装されたインタフェース:
Stroke
BasicStrokeクラスは、Stroke属性セットがこのBasicStrokeに設定されたGraphics2Dオブジェクトでレンダリングされるグラフィックス・プリミティブの輪郭のためのレンダリング属性の基本セットを定義します。 BasicStrokeで定義される描画属性は、Shapeの輪郭をなぞってペンで描画される記号の形状、およびShapeの輪郭線セグメントの端部と接合部の装飾を記述します。 このような描画属性には次のようなものがあります。
- width
- ペンの軌跡に対して垂直方向のペンの幅
- 先端
- 閉じられていない部分輪郭線セグメントと破線セグメントの両端の装飾。 部分輪郭線の起点と終点が同じ場合でも、CLOSEセグメントがない場合は閉じていないとみなされる。 CLOSEセグメントの詳細については、
SEG_CLOSEを参照。 3つの異なる装飾として、CAP_BUTT、CAP_ROUND、およびCAP_SQUAREがある。 - ライン接合
- 2つの輪郭線セグメントの交点、および
SEG_CLOSEで閉じられる部分輪郭線の両端の交点の装飾。 3つの異なる装飾として、JOIN_BEVEL、JOIN_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接合制限値を返します。inthashCode()このストロークのハッシュ・コードを返します。
-
フィールド詳細
-
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が負の値で、dashがnullでない場合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
指定されたShapeのストロークで描画された輪郭が内部で定義されているShapeを返します。- 定義:
createStrokedShape、インタフェースStroke- パラメータ:
s- ストロークで描画されるShapeの境界- 戻り値:
- ストロークで描画された輪郭を表す
Shape - スロー:
NullPointerException-sがnullである場合
-
getLineWidth
public float getLineWidth()ラインの幅を返します。 Java 2Dでデフォルトの座標空間として使用されるユーザー空間での値が返されます。 ユーザー空間の座標系については、Graphics2Dクラスの解説を参照してください。- 戻り値:
- この
BasicStrokeのライン幅 - 関連項目:
-
getEndCap
public int getEndCap()先端のスタイルを返します。- 戻り値:
- この
BasicStrokeの先端のスタイル。先端のスタイルを定義するstaticint値として返される
-
getLineJoin
public int getLineJoin()ライン接合のスタイルを返します。- 戻り値:
BasicStrokeのライン接合のスタイル。ライン接合のスタイルを定義するstaticint値として返される
-
getMiterLimit
public float getMiterLimit()接合制限値を返します。- 戻り値:
BasicStrokeの接合制限値
-
getDashArray
public float[] getDashArray()破線セグメントの長さを表す配列を返します。 配列内のエントリが、破線の不透明セグメントと透明セグメントのユーザー空間での長さを交互に表します。 ストロークで描画されるShapeの輪郭に沿ってペンが移動するにつれて、ペンが移動するユーザー空間の距離が累積されます。 距離の値は、破線配列のインデックスに使用されます。 現在の累積距離が破線配列の偶数番目の要素にマッピングされる場合、ペンは不透明になり、奇数番目の要素にマッピングされる場合は透明になります。- 戻り値:
- 破線配列
-
getDashPhase
public float getDashPhase()現在の破線フェーズを返します。 破線フェーズは、破線パターン内でのオフセットを表すユーザー空間で指定された距離です。 つまり、破線フェーズは、ストロークの先頭に対応する破線パターン内の点を定義します。- 戻り値:
float値の破線フェーズ
-
hashCode
public int hashCode()このストロークのハッシュ・コードを返します。 -
equals
public boolean equals(Object obj) 最初に、指定されたオブジェクトがBasicStrokeであるかどうかをテストし、次にその幅、接合、先端、接合制限値、破線、および破線フェーズ属性をこのBasicStrokeの各属性と比較することによって、そのオブジェクトがこのBasicStrokeに等しいかどうかをテストします。
-