GDI+ でのペン、直線、および四角形
更新 : 2007 年 11 月
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);
DrawLine は Graphics クラスのオーバーロードされたメソッドであるため、いくつかの方法でこのメソッドの引数を指定できます。たとえば、2 つの Point オブジェクトを構築して、その Point オブジェクトを引数として DrawLine メソッドに渡すことができます。
Dim myStartPoint As New Point(4, 2)
Dim myEndPoint As New Point(12, 6)
myGraphics.DrawLine(myPen, myStartPoint, myEndPoint)
Point myStartPoint = new Point(4, 2);
Point myEndPoint = new Point(12, 6);
myGraphics.DrawLine(myPen, myStartPoint, myEndPoint);
ペンの構築
Pen オブジェクトを構築するときに、所定の属性を指定できます。たとえば、ある Pen コンストラクタでは色と幅を指定できます。(0, 0) から (60, 30) まで幅 2 の青い直線を描画する例を次に示します。
Dim myPen As New Pen(Color.Blue, 2)
myGraphics.DrawLine(myPen, 0, 0, 60, 30)
Pen myPen = 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 プロパティでは、連結した直線の処理として、留め継ぎ (角を丸めずに接合)、面取り、丸め、またはクリッピングを指定できます。さまざまなキャップ スタイルと接合スタイルを持つ直線を次の図に示します。
四角形の描画
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);
DrawRectangle は Graphics クラスのオーバーロードされたメソッドであるため、いくつかの方法でこのメソッドの引数を指定できます。たとえば、Rectangle オブジェクトを構築して、その Rectangle オブジェクトを引数として DrawRectangle メソッドに渡すことができます。
Dim myRectangle As New Rectangle(100, 50, 80, 40)
myGraphics.DrawRectangle(myPen, myRectangle)
Rectangle myRectangle = new Rectangle(100, 50, 80, 40);
myGraphics.DrawRectangle(myPen, myRectangle);
Rectangle オブジェクトには、四角形についての情報を操作および収集するためのメソッドとプロパティがあります。たとえば、Inflate メソッドと Offset メソッドは、四角形のサイズと位置を変更します。IntersectsWith メソッドは、四角形が指定した別の四角形と重なる部分を持つかどうかを示します。Contains メソッドは、指定した点が四角形の内部にあるかどうかを示します。