Curvas abiertas y cerradas

En la ilustración siguiente se muestran dos curvas: una abierta y otra cerrada.

ilustración de una curva abierta (una línea curvada) y una curva cerrada (el contorno de una forma)

Las curvas cerradas tienen un interior y, por lo tanto, se pueden rellenar con un pincel. La clase Graphics de Windows GDI+ proporciona los siguientes métodos para rellenar figuras y curvas cerradas: FillRectangle, FillEllipse, FillPie, FillPolygon, FillClosedCurve, Graphics::FillPath y Graphics::FillRegion. Siempre que llames a uno de estos métodos, debes pasar la dirección de uno de los tipos de pincel específicos (SolidBrush, HatchBrush, TextureBrush, LinearGradientBrush o PathGradientBrush) como argumento.

El método FillPie es un complemento del método DrawArc . Al igual que el método DrawArc dibuja una parte del contorno de una elipse, el método FillPie rellena una parte del interior de una elipse. En el ejemplo siguiente se dibuja un arco y se rellena la parte correspondiente del interior de la elipse.

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

En la ilustración siguiente se muestran el arco y el sector de círculo rellenado.

ilustración que muestra un segmento de una elipse rellena

El método FillClosedCurve es un complemento del método DrawClosedCurve . Ambos métodos cierran automáticamente la curva al conectar el punto final con el inicial. En el ejemplo siguiente se dibuja una curva que pasa por (0, 0), (60, 20) y (40, 50). Después, la curva se cierra automáticamente al conectar (40, 50) con el punto inicial (0, 0) y el interior se rellena con un color sólido.

Point myPointArray[] =
   {Point(10, 10), Point(60, 20),Point(40, 50)};
myGraphics.DrawClosedCurve(&myPen, myPointArray, 3);
myGraphics.FillClosedCurve(&mySolidBrush, myPointArray, 3, FillModeAlternate)

Un trazado puede constar de varias figuras (subrutas). El método Graphics::FillPath rellena el interior de cada figura. Si no se cierra una figura, el método Graphics::FillPath rellena el área que se incluiría si se cerrara la figura. En el ejemplo siguiente se dibuja y se rellena un trazado que consta de un arco, una spline cardinal, una cadena y un gráfico circular.

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

En la ilustración siguiente se muestra la ruta de acceso antes y después de rellenarla con un pincel sólido. Tenga en cuenta que el texto de la cadena se describe, pero no se rellena, mediante el método Graphics::D rawPath . Es el método Graphics::FillPath que pinta los interiores de los caracteres de la cadena.

Ilustración que muestra dos veces texto y una curva abierta y cerrada; están vacías la primera vez y se rellenan la segunda vez.