Chemins (GDI+)
Les tracés sont formés en combinant des lignes, des rectangles et des courbes simples. Rappelez-vous à partir de la vue d’ensemble des graphiques vectoriels que les blocs de construction de base suivants se sont avérés les plus utiles pour dessiner des images.
- Lignes
- Rectangles
- Suspension
- Arcs
- Polygones
- Splines cardinales
- Splines de Bézier
dans Windows GDI+, l’objet GraphicsPath vous permet de collecter une séquence de ces blocs de construction en une seule unité. L’intégralité de la séquence de lignes, de rectangles, de polygones et de courbes peut ensuite être dessinée à l’aide d’un appel à la méthode Graphics ::D rawpath de la classe Graphics . L’illustration suivante montre un tracé créé en combinant une ligne, un arc, une spline de Bézier et une spline cardinale.

La classe GraphicsPath fournit les méthodes suivantes pour créer une séquence d’éléments à dessiner : AddLine, AddRectangle, AddEllipse, AddArc, AddPolygon, AddCurve (pour les splines cardinales) et AddBezier. Chacune de ces méthodes est surchargée ; autrement dit, chaque méthode est proposée en plusieurs variations avec différentes listes de paramètres. Par exemple, une variante de la méthode AddLine reçoit quatre entiers et une autre variante de la méthode AddLine reçoit deux objets point .
Les méthodes permettant d’ajouter des lignes, des rectangles et des splines de Bézier à un chemin d’accès ont des méthodes auxiliaires qui ajoutent plusieurs éléments au chemin d’accès en un seul appel : AddLines, AddRectangleset AddBeziers. En outre, la méthode AddCurve a une méthode auxiliaire, AddClosedCurve, qui ajoute une courbe fermée au tracé.
Pour dessiner un tracé, vous avez besoin d’un objet Graphics , d’un objet Pen et d’un objet GraphicsPath . L’objet Graphics fournit la méthode graphics ::D rawpath , et l’objet Pen stocke les attributs du chemin d’accès, tels que la largeur et la couleur de ligne. L’objet GraphicsPath stocke la séquence de lignes, de rectangles et de courbes qui composent le chemin d’accès. Les adresses de l’objet Pen et de l’objet GraphicsPath sont passées comme arguments à la méthode Graphics ::D rawpath . L’exemple suivant dessine un tracé qui se compose d’une ligne, d’une ellipse et d’une spline de Bézier.
myGraphicsPath.AddLine(0, 0, 30, 20);
myGraphicsPath.AddEllipse(20, 20, 20, 40);
myGraphicsPath.AddBezier(30, 60, 70, 60, 50, 30, 100, 10);
myGraphics.DrawPath(&myPen, &myGraphicsPath);
L’illustration suivante montre le chemin d’accès.

En plus d’ajouter des lignes, des rectangles et des courbes à un tracé, vous pouvez ajouter des tracés à un chemin d’accès. Cela vous permet de combiner des chemins existants pour former des chemins d’accès volumineux et complexes. Le code suivant ajoute graphicsPath1 et graphicsPath2 à myGraphicsPath. Le deuxième paramètre de la méthode GraphicsPath :: AddPath spécifie si le chemin d’accès ajouté est connecté au chemin d’accès existant.
myGraphicsPath.AddPath(&graphicsPath1, FALSE);
myGraphicsPath.AddPath(&graphicsPath2, TRUE);
Il existe deux autres éléments que vous pouvez ajouter à un chemin d’accès : des chaînes et des secteurs. Un secteur est une partie de l’intérieur d’une ellipse. L’exemple suivant crée un tracé à partir d’un arc, d’une spline cardinale, d’une chaîne et d’un graphique à secteurs.
myGraphicsPath.AddArc(0, 0, 30, 20, -90, 180);
myGraphicsPath.AddCurve(myPointArray, 3);
myGraphicsPath.AddString(L"a string in a path", 18, &myFontFamily,
0, 24, myPointF, &myStringFormat);
myGraphicsPath.AddPie(230, 10, 40, 40, 40, 110);
myGraphics.DrawPath(&myPen, &myGraphicsPath);
L’illustration suivante montre le chemin d’accès. Notez qu’il n’est pas nécessaire de connecter un chemin d’accès ; l’arc, la spline cardinale, la chaîne et le secteur sont séparés.
