次の方法で共有


GDI+ でのペン、直線、および四角形

GDI+ で直線を描画するには、Graphics オブジェクトと Pen オブジェクトを作成する必要があります。 Graphics オブジェクトには実際に描画を行うメソッドが用意されています。また、Pen オブジェクトには直線の色、幅、スタイルなどの属性が格納されます。

直線の描画

直線を描画するには、Graphics オブジェクトの DrawLine メソッドを呼び出します。 Pen オブジェクトは、引数の 1 つとして DrawLine メソッドに渡されます。 次の例では、点 (4, 2) から点 (12, 6) まで直線を引きます。

myGraphics.DrawLine(myPen, 4, 2, 12, 6);
myGraphics.DrawLine(myPen, 4, 2, 12, 6)

DrawLineGraphics クラスのオーバーロードされたメソッドであるため、いくつかの方法で引数を指定できます。 たとえば、2 つの Point オブジェクトを作成し、その Point オブジェクトを引数として DrawLine メソッドに渡すことができます。

Point myStartPoint = new Point(4, 2);
Point myEndPoint = new Point(12, 6);
myGraphics.DrawLine(myPen, myStartPoint, myEndPoint);
Dim myStartPoint As New Point(4, 2)
Dim myEndPoint As New Point(12, 6)
myGraphics.DrawLine(myPen, myStartPoint, myEndPoint)

ペンの構築

Pen オブジェクトを構築する際には、特定の属性を指定することができます。 たとえば、1 つの Pen コンストラクターを使用すると、色と幅を指定できます。 次の例では、幅 2 の青い直線を (0, 0) から (60, 30) まで描画します。

Pen myPen = new Pen(Color.Blue, 2);
myGraphics.DrawLine(myPen, 0, 0, 60, 30);
Dim myPen As New Pen(Color.Blue, 2)
myGraphics.DrawLine(myPen, 0, 0, 60, 30)

破線とライン キャップ

Pen オブジェクトには DashStyle などのプロパティが公開されており、これを使って直線の特徴を指定できます。 次の例では、(100, 50) から (300, 80) までの破線を描画しています。

myPen.DashStyle = DashStyle.Dash;
myGraphics.DrawLine(myPen, 100, 50, 300, 80);
myPen.DashStyle = DashStyle.Dash
myGraphics.DrawLine(myPen, 100, 50, 300, 80)

Pen オブジェクトのプロパティを使用すると、さらに多くの直線の属性を設定できます。 StartCap および EndCap プロパティは、直線の両端の外観を指定するものであり、フラット、四角、丸、三角、またはカスタム シェイプのいずれかの両端にすることができます。 LineJoin プロパティを使用すると、直線の接合部をマイター (鋭角での結合)、ベベル、ラウンド、クリップのいずれにするかを指定できます。 次の図は、さまざまな先端と結合スタイルの直線を示しています。

Lines

四角形の描画

GDI+ での四角形の描画は、直線の描画と似ています。 四角形を描画するには、Graphics オブジェクトと Pen オブジェクトが必要です。 Graphics オブジェクトには DrawRectangle メソッドが用意されています。また、Pen オブジェクトには直線の幅や色などの属性が格納されます。 Pen オブジェクトは、引数の 1 つとして DrawRectangle メソッドに渡されます。 次の例では、左上隅が (100, 50)、幅が 80、高さが 40 の四角形を描画します。

myGraphics.DrawRectangle(myPen, 100, 50, 80, 40);
myGraphics.DrawRectangle(myPen, 100, 50, 80, 40)

DrawRectangleGraphics クラスのオーバーロードされたメソッドであるため、いくつかの方法で引数を指定できます。 たとえば、Rectangle オブジェクトを構築し、Rectangle オブジェクトを引数として DrawRectangle メソッドに渡すことができます。

Rectangle myRectangle = new Rectangle(100, 50, 80, 40);
myGraphics.DrawRectangle(myPen, myRectangle);
Dim myRectangle As New Rectangle(100, 50, 80, 40)
myGraphics.DrawRectangle(myPen, myRectangle)

Rectangle オブジェクトには、四角形に関する情報を操作および収集するためのメソッドとプロパティがあります。 たとえば、Inflate および Offset メソッドを使用すると、四角形のサイズと位置を変更できます。 IntersectsWith メソッドを使用すると、四角形が別の特定の四角形と交差するかどうかがわかります。また、Contains メソッドを使用すると、特定の点が四角形の内側にあるかどうかがわかります。

関連項目