Compartir a través de


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 Pen objeto 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, LinearGradientBrushy PathGradientBrush. Todas estas clases heredan de la clase brush de. En la ilustración siguiente se muestra un rectángulo lleno de un pincel sólido y una elipse llena de 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 graphicsy 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 imagen siguiente se almacena en un archivo de disco denominado MyTexture.bmp.

captura de pantalla de un cuadrado pequeño 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 ilustración siguiente se muestra la elipse rellenada.

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

 

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 de 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 del 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 ilustración siguiente se muestra la elipse rellenada.

ilustración que muestra una elipse con un relleno degradado: azul a la derecha a verde en el izquierdo

Un pincel 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 ruta son bastante flexibles. El pincel degradado usado para rellenar el triángulo en la siguiente ilustración cambia gradualmente de rojo en el centro a cada uno de los 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