Compartir a través de


Rellenar figuras abiertas

Un trazado se puede rellenar pasando un objeto GraphicsPath al método Graphics.FillPath. El método FillPath rellena el trazado según el modo de relleno (alternativo o de espirales) establecido en la actualidad para el trazado. Si el trazado tiene figuras abiertas, se rellena como si esas figuras estuvieran cerradas. GDI+ cierra una figura dibujando una línea recta desde su punto final hasta su punto inicial.

En el ejemplo siguiente se crea un trazado que tiene una figura abierta (un arco) y otra cerrada (una elipse). El método Graphics.FillPath rellena el trazado según el modo de relleno predeterminado, que es FillMode.Alternate.

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)
[C#]
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);

En la siguiente ilustración se muestra el resultado del código anterior. Observe que el trazado se rellena (según el modo FillMode.Alternate) como si la figura abierta estuviera cerrada con una línea recta desde su punto final hasta su punto inicial.