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


Открытые и закрытые кривые

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

иллюстрации открытой кривой (изогнутой линии) и закрытой кривой (контур фигуры)

Закрытые кривые имеют интерьер и поэтому могут быть заполнены кистью. Классграфикив Windows GDI+ предоставляет следующие методы заполнения закрытых фигур и кривых: FillRectangle, FillEllipse, FillPieFillPolygon, FillClosedCurve, графики::FillPathи Graphics::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[] =
   {Point(10, 10), Point(60, 20),Point(40, 50)};
myGraphics.DrawClosedCurve(&myPen, myPointArray, 3);
myGraphics.FillClosedCurve(&mySolidBrush, myPointArray, 3, FillModeAlternate)

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

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

На следующем рисунке показан путь до и после его заполнения сплошной кистью. Обратите внимание, что текст в строке описан, но не заполнен методом Graphics::D rawPath. Это метод Graphics::FillPath, который красит интерьеры символов в строке.

иллюстрации, которая дважды отображает текст и открытую и закрытую кривую; они пусты в первый раз и заполнены второй раз