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
クラスの説明を参照してください。
- 関連項目:
Graphics2D
-
フィールドのサマリー
修飾子と型フィールド説明static int
装飾を付けずに、閉じられていない部分輪郭線および破線セグメントを終了します。static int
ペン幅の半分の長さを半径とした丸い装飾を付けて、閉じられていない部分輪郭線および破線セグメントを終了します。static int
ライン幅の半分の長さに等しい距離だけセグメントの先端を延長する正方形を付けて、閉じられていない部分輪郭線および破線セグメントを終了します。static int
幅の広い輪郭線の外側の角を直線セグメントに接合するようにして輪郭線セグメントを接合します。static int
輪郭線セグメントの外側の端が重なるまで延長して輪郭線セグメントを接合します。static 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
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
が負の値で、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
-
getLineWidth
public float getLineWidth()ラインの幅を返します。 Java 2Dでデフォルトの座標空間として使用されるユーザー空間での値が返されます。 ユーザー空間の座標系については、Graphics2D
クラスの解説を参照してください。- 戻り値:
- この
BasicStroke
のライン幅 - 関連項目:
Graphics2D
-
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()このストロークのハッシュ・コードを返します。- オーバーライド:
hashCode
、クラス:Object
- 戻り値:
- このストロークのハッシュ・コード。
- 関連項目:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
equals
public boolean equals(Object obj)最初に、指定されたオブジェクトがBasicStroke
であるかどうかをテストし、次にその幅、接合、先端、接合制限値、破線、および破線フェーズ属性をこのBasicStroke
の各属性と比較することによって、そのオブジェクトがこのBasicStroke
に等しいかどうかをテストします。- オーバーライド:
equals
、クラス:Object
- パラメータ:
obj
- このBasicStroke
と比較するオブジェクト- 戻り値:
- 2つのオブジェクトの幅、接合、先端、接合制限値、破線、および破線フェーズが同じ場合は
true
、そうでない場合はfalse
- 関連項目:
Object.hashCode()
、HashMap
-