Pinceaux et formes remplies

Une figure fermée telle qu’un rectangle ou une ellipse se compose d’un contour et d’un intérieur. Le contour est dessiné avec un objet Stylet et l’intérieur est rempli d’un objet Brush . Windows GDI+ fournit plusieurs classes de pinceau pour remplir les intérieurs des figures fermées : SolidBrush, HatchBrush, TextureBrush, LinearGradientBrush et PathGradientBrush. Toutes ces classes héritent de la classe Brush . L’illustration suivante montre un rectangle rempli d’un pinceau uni et une ellipse remplie d’un pinceau à trappe.

illustration montrant un rectangle bleu et une ellipse magenta remplie d’un motif de trappe bleue

 

Pinceaux uni

Pour remplir une forme fermée, vous avez besoin d’un objet Graphics et d’un objet Brush . L’objet Graphics fournit des méthodes, telles que FillRectangle et FillEllipse, et l’objet Brush stocke les attributs du remplissage, tels que la couleur et le motif. L’adresse de l’objet Brush est passée comme l’un des arguments à la méthode fill. L’exemple suivant remplit une ellipse avec une couleur rouge unie.

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

Notez que dans l’exemple précédent, le pinceau est de type SolidBrush, qui hérite de Brush.

Brosses à hachures

Lorsque vous remplissez une forme avec un pinceau à hachure, vous spécifiez une couleur de premier plan, une couleur d’arrière-plan et un style de hache. La couleur de premier plan est la couleur de l’éclosion.

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

GDI+ fournit plus de 50 styles de hachures, spécifiés dans HatchStyle. Les trois styles présentés dans l’illustration suivante sont Horizontal, ForwardDiagonal et Cross.

illustration montrant trois points de suspension couleur sarcelle, chacun avec un style de trappe différent

 

Pinceaux de texture

Avec un pinceau de texture, vous pouvez remplir une forme avec un motif stocké dans une bitmap. Par exemple, supposons que l’image suivante soit stockée dans un fichier disque nommé MyTexture.bmp.

capture d’écran d’un petit carré rempli de différentes couleurs

L’exemple suivant remplit une ellipse en répétant l’image stockée dans MyTexture.bmp.

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

L’illustration suivante montre l’ellipse remplie.

illustration montrant une ellipse remplie du modèle défini précédemment

 

Pinceaux dégradés

Vous pouvez utiliser un pinceau dégradé pour remplir une forme d’une couleur qui change progressivement d’une partie de la forme à une autre. Par exemple, un pinceau dégradé horizontal change de couleur à mesure que vous vous déplacez du côté gauche d’une figure vers le côté droit. L’exemple suivant remplit une ellipse avec un pinceau en dégradé horizontal qui passe du bleu au vert lorsque vous vous déplacez du côté gauche de l’ellipse vers le côté droit.

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

L’illustration suivante montre l’ellipse remplie.

illustration montrant une ellipse avec un remplissage en dégradé : bleu à droite à vert à gauche

Un pinceau de dégradé de chemin peut être configuré pour changer de couleur lorsque vous vous déplacez du centre d’une figure vers la limite.

ilustration d’une ellipse qui est bleu foncé au centre, ombrage en bleu clair au bord

Les pinceaux de dégradé de chemin sont assez flexibles. Le pinceau dégradé utilisé pour remplir le triangle dans l’illustration suivante passe progressivement du rouge au centre à chacune des trois couleurs différentes aux sommets.

illustration d’un triangle rouge au centre, ombrage d’une couleur différente à chaque sommet