Show / Hide Table of Contents

Контуры в GDI+

Пути сформированном путем объединения линии, прямоугольники и простой кривых. Как следует из Общие сведения о векторной графики что следующих основных блоков оказались наиболее подходят для рисования изображений:

  • Прямых линий

  • Прямоугольники

  • Многоточие

  • Дуги

  • Многоугольники

  • Фундаментальные сплайны

  • Сплайны Безье

В GDI + GraphicsPath объект позволяет собирать последовательность из этих блоков в единое целое. Вся последовательность линии, прямоугольники, многоугольники и кривых могут быть нарисована за одно обращение DrawPath метод Graphics класса. Ниже показан путь, полученное путем объединения строки, дуги, сплайна Безье и фундаментальный сплайн.

Путь

С помощью пути

GraphicsPath Класс предоставляет следующие методы для создания последовательность элементов для отрисовки: AddLine, AddRectangle, AddEllipse, AddArc, AddPolygon, AddCurve (для фундаментальные сплайны), и AddBezier. Каждый из этих методов перегружена; то есть каждый метод поддерживает несколько различными списками параметров. Например, один из вариантов AddLine метод получает четырех целых чисел, а в другом варианте AddLine метод получает два Point объектов.

Методы для добавления линии, прямоугольники и сплайны Безье в пути имеют вспомогательные методы, выполняющие добавьте несколько элементов пути за один вызов: AddLines, AddRectangles, и AddBeziers. Кроме того AddCurve и AddArc методы существуют вспомогательные методы AddClosedCurve и AddPie, которые расширяют секции замкнутой кривой или круговой путь.

Чтобы нарисовать контур, вам потребуется Graphics объекта, Pen объекта и GraphicsPath объекта. Graphics Предоставляет DrawPath метод и Pen объект сохраняет атрибуты, например, ширина и цвет линии, используемый для визуализации путь. GraphicsPath Объект сохраняет последовательность линий и кривых линий, составляющих путь. Pen Объекта и GraphicsPath объекта передаются как аргументы для DrawPath метод. В следующем примере рисуется путь, который состоит из строки, эллипс и сплайн Безье:

myGraphicsPath.AddLine(0, 0, 30, 20);
myGraphicsPath.AddEllipse(20, 20, 20, 40);
myGraphicsPath.AddBezier(30, 60, 70, 60, 50, 30, 100, 10);
myGraphics.DrawPath(myPen, myGraphicsPath);

На следующем рисунке путь.

Путь

Помимо добавления линии, прямоугольники и кривые к пути, можно добавить пути к пути. Это позволяет объединять существующие пути для формирования больших и сложных путей.

myGraphicsPath.AddPath(graphicsPath1, false);
myGraphicsPath.AddPath(graphicsPath2, false);

Два других элемента, можно добавить в путь: строку и сектор. Сектор — часть внутреннюю часть эллипса. В следующем примере создается путь из дуги, фундаментальный сплайн, строка и сектора:

     GraphicsPath myGraphicsPath = new GraphicsPath();

     Point[] myPointArray = {
new Point(5, 30), 
new Point(20, 40), 
new Point(50, 30)};

     FontFamily myFontFamily = new FontFamily("Times New Roman");
     PointF myPointF = new PointF(50, 20);
     StringFormat myStringFormat = new StringFormat();

     myGraphicsPath.AddArc(0, 0, 30, 20, -90, 180);
     myGraphicsPath.StartFigure();
     myGraphicsPath.AddCurve(myPointArray);
     myGraphicsPath.AddString("a string in a path", myFontFamily,
        0, 24, myPointF, myStringFormat);
     myGraphicsPath.AddPie(230, 10, 40, 40, 40, 110);
     myGraphics.DrawPath(myPen, myGraphicsPath);

На следующем рисунке путь. Обратите внимание, что путь не обязательно должен быть подключен; arc, фундаментальный сплайн, строка и круговой разделены.

Пути

См. также

  • System.Drawing.Drawing2D.GraphicsPath
  • System.Drawing.Point
  • Прямые и кривые линии и фигуры
  • Практическое руководство. Создание графических объектов для рисования
  • Построение и рисование контуров
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX