Share via


Pinceles y formas rellenas

Una figura cerrada como un rectángulo o una elipse consta de un contorno y un interior. El contorno se dibuja con un objeto Pen y el interior se rellena con un objeto Brush . Windows GDI+ proporciona varias clases de pincel para rellenar los interiores de figuras cerradas: SolidBrush, HatchBrush, TextureBrush, LinearGradientBrush y PathGradientBrush. Todas estas clases heredan de la clase Brush . En la ilustración siguiente se muestra un rectángulo relleno con un pincel sólido y una elipse rellena con un pincel de sombreado.

ilustración que muestra un rectángulo azul y una elipse magenta llena de un patrón de sombreado azul

 

Pinceles sólidos

Para rellenar una forma cerrada, necesita un objeto Graphics y un objeto Brush . El objeto Graphics proporciona métodos, como FillRectangle y FillEllipse, y el objeto Brush almacena atributos del relleno, como el color y el patrón. La dirección del objeto Brush se pasa como uno de los argumentos al método fill. En el ejemplo siguiente se rellena una elipse con un color rojo sólido.

SolidBrush mySolidBrush(Color(255, 255, 0, 0));
myGraphics.FillEllipse(&mySolidBrush, 0, 0, 60, 40);

Tenga en cuenta que en el ejemplo anterior, el pincel es de tipo SolidBrush, que hereda de Brush.

Pinceles de sombreado

Al rellenar una forma con un pincel de sombreado, se especifica un color de primer plano, un color de fondo y un estilo de sombreado. El color de primer plano es el color del sombreado.

HatchBrush myHatchBrush(
   HatchStyleVertical, 
   Color(255, 0, 0, 255),
   Color(255, 0, 255, 0));

GDI+ proporciona más de 50 estilos de sombreado, especificados en HatchStyle. Los tres estilos que se muestran en la ilustración siguiente son Horizontal, ForwardDiagonal y Cross.

ilustración que muestra tres puntos suspensivos de color teal, cada uno con un estilo de sombreado diferente

 

Pinceles de textura

Con un pincel de textura, puede rellenar una forma con un patrón almacenado en un mapa de bits. Por ejemplo, supongamos que la siguiente imagen se almacena en un archivo de disco denominado MyTexture.bmp.

captura de pantalla de un pequeño cuadrado lleno de varios colores

En el ejemplo siguiente se rellena una elipse repitiendo la imagen almacenada en MyTexture.bmp.

Image myImage(L"MyTexture.bmp");
TextureBrush myTextureBrush(&myImage);
myGraphics.FillEllipse(&myTextureBrush, 0, 0, 100, 50);

En la siguiente ilustración se muestra la elipse rellenada.

ilustración que muestra una elipse rellenada con el patrón definido previamente

 

Pinceles de degradado

Puede usar un pincel degradado para rellenar una forma con un color que cambie gradualmente de una parte de la forma a otra. Por ejemplo, un pincel degradado horizontal cambiará el color a medida que se mueve del lado izquierdo de una figura al lado derecho. En el ejemplo siguiente se rellena una elipse con un pincel degradado horizontal que cambia de azul a verde mientras se mueve desde el lado izquierdo de la elipse al lado derecho.

LinearGradientBrush myLinearGradientBrush(
   myRect,
   Color(255, 0, 0, 255),
   Color(255, 0, 255, 0),
   LinearGradientModeHorizontal);
myGraphics.FillEllipse(&myLinearGradientBrush, myRect); 

En la siguiente ilustración se muestra la elipse rellenada.

ilustración que muestra una elipse con un relleno degradado: azul de la derecha a verde a la izquierda

Un pincel de degradado de trazado se puede configurar para cambiar el color a medida que se mueve desde el centro de una figura hacia el límite.

ilustración de una elipse que es azul oscuro en el centro, sombreado a azul claro en el borde

Los pinceles de degradado de trazado son bastante flexibles. El pincel de degradado usado para rellenar el triángulo en la ilustración siguiente cambia gradualmente de rojo en el centro a cada uno de tres colores diferentes en los vértices.

ilustración de un triángulo rojo en el centro, sombreado a un color diferente en cada vértice