填充打开的图形

可以通过将 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) 填充 (,就好像打开的图形从其终点到起点的直线关闭。

插图显示与宽椭圆的下半部分重叠的高椭圆;已填充联合,但交集为空