Show / Hide Table of Contents

Замкнутые и незамкнутые кривые в GDI+

На следующем рисунке показано две кривые: открытая и закрытая.

Замкнутые и незамкнутые кривые

Управляемый интерфейс для кривых

Замкнутых кривых есть внутренняя область, поэтому могут заполняться с помощью кисти. Graphics В класс GDI+ предоставляет следующие методы для заполнения замкнутые фигуры и кривых: FillRectangle, FillEllipse, FillPie, FillPolygon, FillClosedCurve, FillPath, и FillRegion. При вызове одного из этих методов, необходимо передать тип кисти (SolidBrush, HatchBrush, TextureBrush, LinearGradientBrush, или PathGradientBrush) в качестве аргумента.

FillPie Метод является дополнением к DrawArc метод. Так же, как DrawArc метод рисует части контура эллипса, FillPie метод заполняет часть внутреннюю часть эллипса. В следующем примере рисуется дуга и заполняет внутреннюю часть эллипса соответствующей части:

myGraphics.FillPie(mySolidBrush, 0, 0, 140, 70, 0, 120);
myGraphics.DrawArc(myPen, 0, 0, 140, 70, 0, 120);

Ниже показан дуги и заполненный круг.

Замкнутые и незамкнутые кривые

FillClosedCurve Метод является дополнением к DrawClosedCurve метод. Оба метода автоматически закрывать кривой, подключившись к начальной точке конечной точки. В следующем примере рисуется кривую, проходящих через (0, 0), (60, 20) и (40, 50). Затем кривой автоматически закрывается, подключив (40, 50) до начальной точки (0, 0), а внутренняя область заполняется сплошным цветом.

     Point[] myPointArray =
{ new Point(0, 0), new Point(60, 20), new Point(40, 50) };
     myGraphics.DrawClosedCurve(myPen, myPointArray);
     myGraphics.FillClosedCurve(mySolidBrush, myPointArray);

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

     SolidBrush mySolidBrush = new SolidBrush(Color.Aqua);
     GraphicsPath myGraphicsPath = new GraphicsPath();

     Point[] myPointArray = {
new Point(15, 20), 
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.AddCurve(myPointArray);
     myGraphicsPath.AddString("a string in a path", myFontFamily,
        0, 24, myPointF, myStringFormat);
     myGraphicsPath.AddPie(230, 10, 40, 40, 40, 110);

     myGraphics.FillPath(mySolidBrush, myGraphicsPath);
     myGraphics.DrawPath(myPen, myGraphicsPath);

Ниже показан путь с и без сплошной заливки. Обратите внимание, что текст в строке контуров символов, но не заполнено, DrawPath метод. Это FillPath метод закрашиваются символов в строке.

Строка в пути

См. также

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