ペンの幅と配置の設定

Pen オブジェクトを作成するときに、ペンの幅をコンストラクターの引数の 1 つとして指定できます。 Pen::SetWidth メソッドを使用して、ペンの幅を変更することもできます。

理論上の線の幅は 0 です。 線を描画すると、ピクセルは理論上の線の中央に配置されます。 次の例では、指定した線を 2 回描画します。1 回は幅 1 の黒いペン、1 回は幅 10 の緑のペンを使用します。

Pen blackPen(Color(255, 0, 0, 0), 1);
Pen greenPen(Color(255, 0, 255, 0), 10);
stat = greenPen.SetAlignment(PenAlignmentCenter);

// Draw the line with the wide green pen.
stat = graphics.DrawLine(&greenPen, 10, 100, 100, 50);

// Draw the same line with the thin black pen.
stat = graphics.DrawLine(&blackPen, 10, 100, 100, 50);

次の図は、上記のコードの出力を示しています。 緑色のピクセルと黒のピクセルは、理論上の線の中央に配置されます。

幅の広い緑の線で囲まれた、細い斜め、黒い線を示す図

次の例では、指定した四角形を 2 回描画します。1 回は幅 1 の黒いペン、1 回は幅 10 の緑のペンを使用します。 このコードでは、 PenAlignmentCenter ( PenAlignment 列挙体の要素) の値を Pen::SetAlignment メソッドに渡して、緑色のペンで描画されるピクセルが四角形の境界の中央に配置されるように指定します。

Pen blackPen(Color(255, 0, 0, 0), 1);
Pen greenPen(Color(255, 0, 255, 0), 10);
stat = greenPen.SetAlignment(PenAlignmentCenter);

// Draw the rectangle with the wide green pen.
stat = graphics.DrawRectangle(&greenPen, 10, 100, 50, 50);

// Draw the same rectangle with the thin black pen.
stat = graphics.DrawRectangle(&blackPen, 10, 100, 50, 50);

次の図は、上記のコードの出力を示しています。 緑色のピクセルは、理論上の四角形の中央に配置され、黒のピクセルで表されます。

太い緑色の線で囲まれた、四角形の形の細い黒い線を示す図

緑色のペンの配置を変更するには、前の例の 3 番目のステートメントを次のように変更します。

stat = greenPen.SetAlignment(PenAlignmentInset);

次の図に示すように、広い緑色の線のピクセルが四角形の内側に表示されます。

同じ図形の広い緑の線を囲む、細い黒い線を示す図