Share via


直線、曲線、および図形からの図表の作成

パスを作成するには、 GraphicsPath オブジェクトを構築し、 AddLineAddCurve などのメソッドを呼び出して、プリミティブをパスに追加します。

次の例では、1 つの円弧を持つパスを作成します。円弧のスイープ角度は -180 度で、既定の座標系では反時計回りになります。

Pen pen(Color(255, 255, 0, 0));
GraphicsPath path;
path.AddArc(175, 50, 50, 50, 0, -180);
graphics.DrawPath(&pen, &path);

次の例では、2 つの図形を含むパスを作成します。 最初の図形は弧の後ろに線が続いたものになります。 2 番目の図は、線の後に曲線が続き、線が続きます。 最初の図形は開いたままであり、2 番目の図形は閉じられています。

Point points[] = {Point(40, 60), Point(50, 70), Point(30, 90)};

Pen pen(Color(255, 255, 0, 0), 2);
GraphicsPath path;

// The first figure is started automatically, so there is
// no need to call StartFigure here.
path.AddArc(175, 50, 50, 50, 0.0f, -180.0f);
path.AddLine(100, 0, 250, 20);

path.StartFigure();
path.AddLine(50, 20, 5, 90);
path.AddCurve(points, 3);
path.AddLine(50, 150, 150, 180);
path.CloseFigure();

graphics.DrawPath(&pen, &path);

パスに線と曲線を追加するだけでなく、四角形、楕円、円、ポリゴンなどの閉じた図形を追加することもできます。 次の例では、四角形と楕円の 2 本の線を含むパスを作成します。 このコードでは、ペンを使用してパスを描画し、パスを塗りつぶすブラシを使用します。

GraphicsPath path;
Pen          pen(Color(255, 255, 0, 0), 2);
SolidBrush   brush(Color(255, 0, 0, 200));

path.AddLine(10, 10, 100, 40);
path.AddLine(100, 60, 30, 60);
path.AddRectangle(Rect(50, 35, 20, 40));
path.AddEllipse(10, 75, 40, 30);

graphics.DrawPath(&pen, &path);
graphics.FillPath(&brush, &path);

前の例のパスには、3 つの図があります。 1 番目の図は 2 つの線で構成され、2 番目の図は四角形で構成され、3 番目の図は楕円で構成されます。 GraphicsPath::CloseFigure または GraphicsPath::StartFigure の呼び出しがない場合でも、四角形や楕円などの本質的に閉じた図形は個別の図形と見なされます。