FillMode 枚举

定义

指定如何填充闭合路径的内部。

public enum class FillMode
public enum FillMode
type FillMode = 
Public Enum FillMode
继承
FillMode

字段

Alternate 0

指定交替填充模式。

Winding 1

指定环绕填充模式。

示例

下面的示例创建具有一个开放图形(圆弧)和一个闭合图形(椭圆)的路径。 FillPath 方法根据默认填充模式(备用)填充路径。 下图显示了示例代码的输出。 请注意,根据备用) 填充路径 (,就好像打开的图从终点到起点的直线关闭了一样。

填充打开路径

以下示例旨在与 Windows 窗体 一起使用,它需要 PaintEventArgse,这是事件处理程序的参数Paint

GraphicsPath path = new GraphicsPath();

// 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 = new Pen(Color.FromArgb(128, 0, 0, 255), 5);
SolidBrush brush = new SolidBrush(Color.Red);

// The fill mode is FillMode.Alternate by default.
e.Graphics.FillPath(brush, path);
e.Graphics.DrawPath(pen, path);
Dim path As New GraphicsPath()

' Add an open figure.
path.AddArc(0, 0, 150, 120, 30, 120)

' Add an intrinsically closed figure.
path.AddEllipse(50, 50, 50, 100)

Dim pen As New Pen(Color.FromArgb(128, 0, 0, 255), 5)
Dim brush As New SolidBrush(Color.Red)

' The fill mode is FillMode.Alternate by default.
e.Graphics.FillPath(brush, path)
e.Graphics.DrawPath(pen, path)

注解

应用程序使用两种填充模式之一填充路径的内部:交替模式或缠绕模式。 该模式确定如何填充和剪裁封闭图形的内部。

默认模式为 Alternate。 若要确定交替模式下闭合数字的内部,请从路径中的任何任意起点到路径外的某个点绘制一条线。 如果线条与奇数的路径段相交,则起点位于封闭区域内,因此是填充或剪切区域的一部分。 偶数的交叉意味着该点不在要填充或剪裁的区域。 通过使用线条将最后一个点连接到图形的第一个点来填充或剪裁打开的图形。

绕组模式考虑每个交集处的路径段的方向。 它为每个顺时针交集添加一个,并为每个逆时针交集减一个。 如果结果为非零,则认为该点位于填充或剪辑区域内。 零计数意味着该点位于填充或剪辑区域之外。

根据图形段的绘制顺序,将图形视为顺时针或逆时针。

适用于

另请参阅