Riempimento di figure aperte

È possibile riempire un percorso passando un oggetto GraphicsPath al metodo Graphics.FillPath. Il metodo FillPath consente di riempire il percorso in base alla modalità di riempimento attualmente impostata per il percorso; è possibile scegliere tra modalità alternata o a chiocciola. Se il percorso contiene figure aperte viene riempito come se fossero chiuse. In GDI+ una figura viene chiusa disegnando una linea retta tra il punto finale e il punto iniziale della figura.

Nell'esempio che segue viene creato un percorso che contiene una figura aperta, un arco, e una figura chiusa, un'ellisse. Con il metodo Graphics.FillPath il percorso viene riempito in base alla modalità di riempimento predefinita, ovvero 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);

Nell'illustrazione che segue si mostra l'output del codice precedente. Si noti che il percorso viene riempito, secondo FillMode.Alternate, come se la figura aperta fosse chiusa da una linea retta tracciata tra il punto finale e il punto iniziale della figura.