モジュール java.desktop
パッケージ java.awt

クラス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クラスの説明を参照してください。

関連項目: