Curvas abertas e fechadas

A ilustração a seguir mostra duas curvas: uma aberta e outra fechada.

ilustração de uma curva aberta (uma linha curva) e uma curva fechada (o contorno de uma forma)

Curvas fechadas têm um interior e, portanto, podem ser preenchidas com um pincel. A classe Graphics no Windows GDI+ fornece os seguintes métodos para preencher figuras e curvas fechadas: FillRectangle, FillEllipse, FillPie, FillPolygon, FillClosedCurve, Graphics::FillPath e Graphics::FillRegion. Sempre que você chamar um desses métodos, deverá passar o endereço de um dos tipos de pincel específicos (SolidBrush, HatchBrush, TextureBrush, LinearGradientBrush ou PathGradientBrush) como um argumento.

O método FillPie é um complemento para o método DrawArc . Assim como o método DrawArc desenha uma parte do contorno de uma elipse, o método FillPie preenche uma parte do interior de uma elipse. O exemplo a seguir desenha um arco e preenche a parte correspondente do interior da elipse.

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

A ilustração a seguir mostra o arco e a pizza preenchida.

ilustração mostrando um segmento de uma elipse preenchida

O método FillClosedCurve é um complemento para o método DrawClosedCurve . Ambos os métodos fecham automaticamente a curva conectando o ponto final ao ponto inicial. O exemplo a seguir desenha uma curva que passa por (0, 0), (60, 20) e (40, 50). Em seguida, a curva é fechada automaticamente conectando (40, 50) ao ponto inicial (0, 0), e o interior é preenchido com uma cor sólida.

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

Um caminho pode consistir em várias figuras (subcaminhos). O método Graphics::FillPath preenche o interior de cada figura. Se uma figura não for fechada, o método Graphics::FillPath preencherá a área que seria fechada se a figura fosse fechada. O exemplo a seguir desenha e preenche um caminho que consiste em um arco, um spline cardinal, uma cadeia de caracteres e uma pizza.

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

A ilustração a seguir mostra o caminho antes e depois de ser preenchido com um pincel sólido. Observe que o texto na cadeia de caracteres é descrito, mas não preenchido, pelo método Graphics::D rawPath . É o método Graphics::FillPath que pinta os interiores dos caracteres na cadeia de caracteres.

ilustração que mostra duas vezes o texto e uma curva aberta e fechada; estes estão vazios na primeira vez e preenchidos pela segunda vez