Заполнение открытых фигур
Можно заполнить путь, передав адрес объекта GraphicsPath методу Graphics::FillPath . Метод Graphics::FillPath заполняет путь в соответствии с режимом заливки (альтернативным или обмоткой), заданным для пути. Если контур имеет открытые фигуры, то он будет заполнен так, как если бы эти фигуры были закрыты. GDI+ закрывает фигуру путем рисования прямой линии от конечной точки до начальной точки.
В следующем примере создается контур с одной открытой фигурой (дугой) и одной закрытой (эллипсом). Метод Graphics::FillPath заполняет путь в соответствии с режимом заливки по умолчанию, который имеет значение FillModeAlternate.
GraphicsPath path;
// Add an open figure.
path.AddArc(0, 0, 150, 120, 30, 120);
// Add an intrinsically closed figure.
path.AddEllipse(50, 50, 50, 100);
Pen pen(Color(128, 0, 0, 255), 5);
SolidBrush brush(Color(255, 255, 0, 0));
// The fill mode is FillModeAlternate by default.
graphics.FillPath(&brush, &path);
graphics.DrawPath(&pen, &path);
На следующем рисунке показаны выходные данные предыдущего кода. Обратите внимание, что путь заполняется (в соответствии с FillModeAlternate), как если бы открытая фигура была закрыта прямой линией от конечной точки до начальной точки.