下图显示了两条曲线:一个打开,一个关闭。
封闭曲线具有内部,因此可以填充画笔。 Windows GDI+ 中的 Graphics 类提供了以下填充封闭图形和曲线的方法:FillRectangle、FillEllipse、FillPieFillPolygon、FillClosedCurve、Graphics::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 方法,用于绘制字符串中字符的内部。