Поделиться через


Практическое руководство. Создание изображений из прямых и кривых линий и геометрических фигур

Обновлен: Ноябрь 2007

Чтобы создать изображение, создайте объект GraphicsPath, а затем вызовите его методы, например AddLine или AddCurve, для добавления к изображению примитивов.

Пример

В следующем примере кода создается контур, состоящий из двух фигур.

  • В первом примере создается контур, состоящий из одной фигуры. Фигура представляет собой одну дугу. Дуга имеет угол развертки, равный 180 градусам, в принятой по умолчанию системе координат он соответствует движению против часовой стрелки.

  • Во втором примере создается контур, состоящий из двух фигур. Первая фигура представляет собой дугу, за которой следует линия. Вторая фигура является прямой, за которой следуют кривая и другая прямая. Первая фигура незамкнутая, а вторая — замкнутая.

Dim path As New GraphicsPath()
path.AddArc(175, 50, 50, 50, 0, -180)
e.Graphics.DrawPath(New Pen(Color.FromArgb(128, 255, 0, 0), 4), path)

GraphicsPath path = new GraphicsPath();
path.AddArc(175, 50, 50, 50, 0, -180);
e.Graphics.DrawPath(new Pen(Color.FromArgb(128, 255, 0, 0), 4), path);
' Create an array of points for the curve in the second figure.
Dim points As Point() = { _
   New Point(40, 60), _
   New Point(50, 70), _
   New Point(30, 90)}

Dim path As New GraphicsPath()

path.StartFigure() ' Start the first figure.
path.AddArc(175, 50, 50, 50, 0, -180)
path.AddLine(100, 0, 250, 20)
' First figure is not closed.

path.StartFigure() ' Start the second figure.
path.AddLine(50, 20, 5, 90)
path.AddCurve(points, 3)
path.AddLine(50, 150, 150, 180)
path.CloseFigure() ' Second figure is closed.
e.Graphics.DrawPath(New Pen(Color.FromArgb(255, 255, 0, 0), 2), path)

     // Create an array of points for the curve in the second figure.
     Point[] points = {
new Point(40, 60),
new Point(50, 70),
new Point(30, 90)};

     GraphicsPath path = new GraphicsPath();

     path.StartFigure(); // Start the first figure.
     path.AddArc(175, 50, 50, 50, 0, -180);
     path.AddLine(100, 0, 250, 20);
     // First figure is not closed.

     path.StartFigure(); // Start the second figure.
     path.AddLine(50, 20, 5, 90);
     path.AddCurve(points, 3);
     path.AddLine(50, 150, 150, 180);
     path.CloseFigure(); // Second figure is closed.

     e.Graphics.DrawPath(new Pen(Color.FromArgb(255, 255, 0, 0), 2), path);

Компиляция кода

Предыдущий пример предназначен для работы с Windows Forms, для него необходим объект PaintEventArgs e, передаваемый в качестве параметра обработчику события Paint.

См. также

Ссылки

GraphicsPath

Другие ресурсы

Построение и рисование контуров

Рисование линий и фигур с помощью пера