Delen via


Open en gesloten curven in GDI+

In de volgende afbeelding ziet u twee curven: één open en één gesloten.

Schermopname van één geopende curve en één gesloten curve.

Beheerde interface voor curven

Gesloten curven hebben een interieur en kunnen daarom worden gevuld met een borstel. De klasse Graphics in GDI+ biedt de volgende methoden voor het vullen van gesloten vormen en curven: FillRectangle, FillEllipse, FillPie, FillPolygon, FillClosedCurve, FillPathen FillRegion. Wanneer u een van deze methoden aanroept, moet u een van de specifieke kwasttypen (SolidBrush, HatchBrush, TextureBrush, LinearGradientBrushof PathGradientBrush) doorgeven als argument.

De methode FillPie is een aanvulling op de DrawArc methode. Net zoals bij de DrawArc-methode een deel van het contour van een ellips wordt getekend, vult de FillPie-methode een deel van het binnenste van een ellips. In het volgende voorbeeld wordt een boog getekend en wordt het bijbehorende gedeelte van de binnenkant van de ellips gevuld.

myGraphics.FillPie(mySolidBrush, 0, 0, 140, 70, 0, 120);
myGraphics.DrawArc(myPen, 0, 0, 140, 70, 0, 120);
myGraphics.FillPie(mySolidBrush, 0, 0, 140, 70, 0, 120)
myGraphics.DrawArc(myPen, 0, 0, 140, 70, 0, 120)

In de volgende afbeelding ziet u de boog en de gevulde cirkel.

Schermopname van een boog en de gevulde cirkel.

De methode FillClosedCurve is een aanvulling op de DrawClosedCurve methode. Beide methoden sluiten de curve automatisch door het eindpunt aan het beginpunt te verbinden. In het volgende voorbeeld wordt een curve tekent die doorloopt (0, 0), (60, 20) en (40, 50). Vervolgens wordt de curve automatisch gesloten door (40, 50) aan het beginpunt (0, 0) te verbinden en wordt het interieur gevuld met een effen kleur.

Point[] myPointArray =
{
    new Point(0, 0),
    new Point(60, 20),
    new Point(40, 50)
};
myGraphics.DrawClosedCurve(myPen, myPointArray);
myGraphics.FillClosedCurve(mySolidBrush, myPointArray);
Dim myPointArray As Point() = _
   {New Point(0, 0), New Point(60, 20), New Point(40, 50)}
myGraphics.DrawClosedCurve(myPen, myPointArray)
myGraphics.FillClosedCurve(mySolidBrush, myPointArray)

De FillPath-methode vult de binnenzijde van de losse stukken van een pad. Als een deel van een pad geen gesloten curve of vorm vormt, sluit de methode FillPath dat deel van het pad automatisch voordat u het invult. In het volgende voorbeeld wordt een pad gemaakt en ingevuld dat bestaat uit een boog, een cardinale spline, een string en een taartpunt:

SolidBrush mySolidBrush = new SolidBrush(Color.Aqua);
GraphicsPath myGraphicsPath = new GraphicsPath();

Point[] myPointArray =
{
    new Point(15, 20),
    new Point(20, 40),
    new Point(50, 30)
};

FontFamily myFontFamily = new FontFamily("Times New Roman");
PointF myPointF = new PointF(50, 20);
StringFormat myStringFormat = new StringFormat();

myGraphicsPath.AddArc(0, 0, 30, 20, -90, 180);
myGraphicsPath.AddCurve(myPointArray);
myGraphicsPath.AddString("a string in a path", myFontFamily,
   0, 24, myPointF, myStringFormat);
myGraphicsPath.AddPie(230, 10, 40, 40, 40, 110);

myGraphics.FillPath(mySolidBrush, myGraphicsPath);
myGraphics.DrawPath(myPen, myGraphicsPath);
Dim mySolidBrush As New SolidBrush(Color.Aqua)
Dim myGraphicsPath As New GraphicsPath()

Dim myPointArray As Point() = { _
   New Point(15, 20), _
   New Point(20, 40), _
   New Point(50, 30)}

Dim myFontFamily As New FontFamily("Times New Roman")
Dim myPointF As New PointF(50, 20)
Dim myStringFormat As New StringFormat()

myGraphicsPath.AddArc(0, 0, 30, 20, -90, 180)
myGraphicsPath.AddCurve(myPointArray)
myGraphicsPath.AddString("a string in a path", myFontFamily, _
   0, 24, myPointF, myStringFormat)
myGraphicsPath.AddPie(230, 10, 40, 40, 40, 110)

myGraphics.FillPath(mySolidBrush, myGraphicsPath)
myGraphics.DrawPath(myPen, myGraphicsPath)

In de volgende afbeelding ziet u het pad met en zonder de effen opvulling. Houd er rekening mee dat de tekst in de tekenreeks wordt omlijnd, maar niet is gevuld door methode DrawPath. Het is de FillPath-methode die de binnenkant van de tekens in de tekenreeks kleurt.

tekenreeks in een pad

Zie ook