Создание фигур из линий, кривых и форм
Чтобы создать путь, создайте объект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отсутствуют, по своей природе закрытые фигуры, такие как прямоугольники и эллипсы, считаются отдельными фигурами.