Curve aperte e chiuse in GDI+
La figura seguente mostra due curve: una aperta e una chiusa.
Interfaccia gestita per curve
Le curve chiuse hanno un interno e quindi possono essere riempite con un pennello. La Graphics classe in GDI+ fornisce i metodi seguenti per riempire le forme chiuse e le curve: FillRectangle, FillPieFillEllipse, FillPolygon, FillClosedCurve, , FillPathe FillRegion. Ogni volta che si chiama uno di questi metodi, è necessario passare uno dei tipi di pennello specifici (SolidBrush, HatchBrush, TextureBrushLinearGradientBrush, o PathGradientBrush) come argomento.
Il FillPie metodo è un elemento complementare al DrawArc metodo . Proprio come il DrawArc metodo disegna una parte del contorno di un'ellisse, il FillPie metodo riempie una parte dell'interno di un'ellisse. Nell'esempio seguente viene disegnato un arco e viene riempita la parte corrispondente dell'interno dell'ellisse:
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)
La figura seguente mostra l'arco e la torta riempita.
Il FillClosedCurve metodo è un elemento complementare al DrawClosedCurve metodo . Entrambi i metodi chiudono automaticamente la curva collegando il punto finale al punto iniziale. Nell'esempio seguente viene tracciata una curva che passa attraverso (0, 0), (60, 20) e (40, 50). La curva viene quindi chiusa automaticamente collegando (40, 50) al punto iniziale (0, 0) e l'interno viene riempito con un colore a tinta unita.
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)
Il FillPath metodo riempie gli interni dei pezzi separati di un percorso. Se una parte di un percorso non forma una curva o una forma chiusa, il FillPath metodo chiude automaticamente tale parte del percorso prima di riempirla. L'esempio seguente disegna e riempie un percorso costituito da un arco, da una spline cardinala, da una stringa e da una torta:
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)
La figura seguente mostra il percorso con e senza riempimento a tinta unita. Si noti che il testo nella stringa è descritto, ma non compilato, dal DrawPath metodo . È il FillPath metodo che disegna gli interni dei caratteri nella stringa.
Vedi anche
.NET Desktop feedback
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per