Como Preencher Figuras Abertas

Você pode preencher um caminho passando um GraphicsPath objeto para o FillPath método. O FillPath método preenche o caminho de acordo com o modo de preenchimento (alternativo ou sinuoso) atualmente definido para o caminho. Se o caminho tiver figuras abertas, ele será preenchido como se essas figuras que foram fechadas. GDI+ fecha uma figura desenhando uma linha reta de seu ponto final até seu ponto inicial.

Exemplo

O exemplo a seguir cria um caminho que tem uma figura aberta (um arco) e uma figura fechada (uma elipse). O FillPath método preenche o caminho de acordo com o modo de preenchimento padrão, que é Alternate.

A ilustração a seguir mostra a saída do código de exemplo. Observe que o caminho é preenchido (de acordo com Alternate) como se a figura aberta fosse fechada por uma linha reta de seu ponto final até seu ponto inicial.

Diagrama que mostra a saída do método FillPath

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)

Compilando o código

O exemplo anterior foi projetado para uso com o Windows Forms e requer PaintEventArgs e, que é um parâmetro do Paint manipulador de eventos.

Confira também