선, 곡선 및 도형에서 그림 만들기
경로를 만들려면 GraphicsPath 개체를 생성한 다음 AddLine 및 AddCurve와 같은 메서드를 호출하여 경로에 기본 형식을 추가합니다.
다음 예제에서는 단일 호가 있는 경로를 만듭니다. 원호의 스윕 각도는 –180도이며 기본 좌표계에서 시계 반대 방향으로 표시됩니다.
Pen pen(Color(255, 255, 0, 0));
GraphicsPath path;
path.AddArc(175, 50, 50, 50, 0, -180);
graphics.DrawPath(&pen, &path);
다음 예제에서는 두 개의 그림이 있는 경로를 만듭니다. 첫 번째 그림에서는 호 뒤에 선이 있습니다. 두 번째 그림은 곡선 뒤에 선이 이어지는 선입니다. 첫 번째 그림이 열려 있고 두 번째 그림이 닫힙니다.
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);
경로에 선과 곡선을 추가하는 것 외에도 사각형, 타원, 원형 및 다각형과 같은 닫힌 셰이프를 추가할 수 있습니다. 다음 예제에서는 두 줄, 사각형 및 줄임표가 있는 경로를 만듭니다. 이 코드는 펜을 사용하여 경로를 그리고 브러시를 사용하여 경로를 채웁니다.
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);
앞의 예제의 경로에는 세 개의 그림이 있습니다. 첫 번째 그림은 두 줄로 구성되고, 두 번째 그림은 사각형으로 구성되고, 세 번째 그림은 타원으로 구성됩니다. GraphicsPath::CloseFigure 또는 GraphicsPath::StartFigure에 대한 호출이 없는 경우에도 직사각형 및 타원과 같은 본질적으로 닫힌 셰이프는 별도의 그림으로 간주됩니다.