ベクター グラフィックスの概要

Windows GDI+ は、座標系に線、四角形、およびその他の図形を描画します。 さまざまな座標系から選択できますが、既定の座標系では左上隅に原点があり、x 軸は右を指し、y 軸は下向きになります。 既定の座標系の測定単位はピクセルです。

x 軸が右に拡張され、y 軸が下方向に拡張されている座標系の図

コンピューター モニターでは、画素またはピクセルと呼ばれるドットの四角形の配列に表示が作成されます。 画面に表示されるピクセル数はモニターごとに異なり、個々のモニターに表示されるピクセル数は通常、ユーザーによってある程度構成できます。

四角形のグリッドの図。そのグリッド内の 3 つのセルは座標でラベル付けされています

GDI+ を使用して線、四角形、または曲線を描画する場合は、描画される項目に関する特定の主要な情報を指定します。 たとえば、2 つの点を提供することにより直線を指定でき、点、高さ、幅を提供することにより四角形を指定できます。 GDI+ とディスプレイ ドライバー ソフトウェアの連携により、直線、四角形、曲線を表示するためにオンにする必要があるピクセルが決定されます。 次の図は、点 (4, 2) から点 (12, 8) まで直線を表示するためにオンにされるピクセルを示したものです。

2 つの端点間の線を示すセルが塗りつぶされた四角形のグリッドを示す図

時が経つにつれて、いくつかの基本的な構成要素が、2 次元の画像を作成するのに最も役に立つことが実証されています。 次の一覧はこのような構成要素を示したものであり、これらはすべて GDI+ でサポートされています。

  • 路線
  • 四角形
  • 楕円
  • 円弧
  • 多角形
  • カーディナル スプライン
  • ベジエ スプライン

GDI+ の Graphics クラスには、前のリストの項目を描画するための次のメソッドが用意されています。 DrawLineDrawRectangleDrawEllipseDrawPolygonDrawArcDrawCurve (カーディナル スプラインの場合)、 DrawBezier です。 これらの各メソッドはオーバーロードされます。つまり、各メソッドには、パラメーター リストが異なるいくつかのバリエーションがあります。 たとえば、DrawLine メソッドの 1 つのバリエーションは Pen オブジェクトのアドレスと 4 つの整数を受け取り、DrawLine メソッドの別のバリエーションは Pen オブジェクトと 2 つの Point オブジェクト参照のアドレスを受け取ります。

線、四角形、およびベジエ スプラインを描画するメソッドには、1 回の呼び出しで複数の項目を描画する複数のコンパニオン メソッド ( DrawLinesDrawRectanglesDrawBeziers) があります。 また、 DrawCurve メソッドには、曲線の終了点を開始点に接続して曲線を閉じるコンパニオン メソッド DrawClosedCurve があります。

Graphics クラスのすべての描画メソッドは、Pen オブジェクトと組み合わせて動作します。 したがって、何かを描画するには、 Graphics オブジェクトと Pen オブジェクトの 2 つ以上のオブジェクトを作成する必要があります。 Pen オブジェクトには、線の幅や色など、描画する項目の属性が格納されます。 Pen オブジェクトのアドレスは、描画メソッドに引数の 1 つとして渡されます。 たとえば、 DrawRectangle メソッドの 1 つのバリエーションは、次のコードに示すように Pen オブジェクトのアドレスと 4 つの整数を受け取ります。このコードでは、幅が 100、高さが 50、左上隅が (20, 10) の四角形が描画されます。

myGraphics.DrawRectangle(&myPen, 20, 10, 100, 50);