Condividi tramite


Curve aperte e chiuse

La figura seguente mostra due curve: una aperta e una chiusa.

illustrazione di una curva aperta (una linea curva) e di una curva chiusa (contorno di una forma)

Le curve chiuse hanno un interno e quindi possono essere riempite con un pennello. La classegraficain Windows GDI+ fornisce i metodi seguenti per riempire figure e curve chiuse: FillRectangle, FillEllipse, FillPieFillPolygon, FillClosedCurve, Graphics::FillPathe Graphics::FillRegion. Ogni volta che chiami uno di questi metodi, devi passare l'indirizzo di uno dei tipi di pennello specifici (SolidBrush, HatchBrush, TextureBrush, LinearGradientBrusho PathGradientBrush) come argomento.

Il metodo FillPie è un elemento complementare al metodo DrawArc. Proprio come il metodo DrawArc disegna una parte del contorno di un'ellisse, il metodo FillPie 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);

La figura seguente mostra l'arco e la torta riempita.

illustrazione che mostra un segmento di un'ellisse piena

Il metodo FillClosedCurve è complementare al metodo DrawClosedCurve. 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[] =
   {Point(10, 10), Point(60, 20),Point(40, 50)};
myGraphics.DrawClosedCurve(&myPen, myPointArray, 3);
myGraphics.FillClosedCurve(&mySolidBrush, myPointArray, 3, FillModeAlternate)

Un percorso può essere costituito da diverse figure (sottopercorso). Il metodo Graphics::FillPath riempie l'interno di ogni figura. Se una figura non è chiusa, il metodo Graphics::FillPath riempie l'area che verrebbe racchiusa se la figura fosse chiusa. Nell'esempio seguente viene disegnato e riempito un percorso costituito da un arco, da una spline cardinala, da una stringa e da una torta.

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

La figura seguente mostra il percorso prima e dopo il riempimento con un pennello a tinta unita. Si noti che il testo nella stringa viene delineato, ma non compilato, dal metodo Graphics::D rawPath. Si tratta del metodo Graphics::FillPath che disegna gli interni dei caratteri nella stringa.

illustrazione che mostra due volte testo e una curva aperta e chiusa; queste sono vuote la prima volta e riempite la seconda volta