Tracés graphiques dans GDI+

Les chemins sont formés en combinant des lignes, des rectangles et des courbes simples. Rappelez-vous de la vue d’ensemble des graphiques vectoriels que les blocs de construction de base suivants ont prouvé être les plus utiles pour dessiner des images :

  • Lignes

  • Rectangles

  • Ellipses

  • Arcs

  • Polygones

  • Splines cardinales

  • Splines de Bézier

Dans GDI+, l’objet GraphicsPath vous permet de collecter une séquence de ces blocs de construction en une seule unité. La séquence entière de lignes, de rectangles, de polygones et de courbes peut ensuite être dessinée avec un appel à la DrawPath méthode de la Graphics classe. L’illustration suivante montre un chemin créé en combinant une ligne, un arc, une spline de Bézier et une spline carte inal.

Image of a single-line path, starting from a straight line and continuing into different shapes.

Utilisation d’un chemin d’accès

La GraphicsPath classe fournit les méthodes suivantes pour créer une séquence d’éléments à dessiner : AddLine, AddRectangleAddEllipseAddPolygonAddArc( AddCurve pour les splines carte inal) et .AddBezier Chacune de ces méthodes est surchargée ; autrement dit, chaque méthode prend en charge plusieurs listes de paramètres différentes. Par exemple, une variante de la AddLine méthode reçoit quatre entiers, et une autre variante de la AddLine méthode reçoit deux Point objets.

Les méthodes permettant d’ajouter des lignes, des rectangles et des splines de Bézier à un chemin ont des méthodes compagnons pluriels qui ajoutent plusieurs éléments au chemin d’accès dans un seul appel : AddLines, AddRectangleset AddBeziers. En outre, les méthodes et AddArc les AddCurve méthodes ont des méthodes complémentaires, AddClosedCurve et AddPie, qui ajoutent une courbe fermée ou un secteurs au chemin.

Pour dessiner un chemin, vous avez besoin d’un Graphics objet, d’un Pen objet et d’un GraphicsPath objet. L’objet Graphics fournit la DrawPath méthode et l’objet Pen stocke les attributs, tels que la largeur et la couleur, de la ligne utilisée pour afficher le chemin d’accès. L’objet GraphicsPath stocke la séquence de lignes et de courbes qui composent le chemin. L’objet Pen et l’objet GraphicsPath sont passés en tant qu’arguments à la DrawPath méthode. L’exemple suivant dessine un chemin qui se compose d’une ligne, d’un 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);
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.

Image of a path displayed within a graph.

En plus d’ajouter des lignes, des rectangles et des courbes à un chemin, vous pouvez ajouter des chemins à un chemin d’accès. Cela vous permet de combiner des chemins existants pour former des chemins volumineux et complexes.

myGraphicsPath.AddPath(graphicsPath1, false);
myGraphicsPath.AddPath(graphicsPath2, false);
myGraphicsPath.AddPath(graphicsPath1, False)
myGraphicsPath.AddPath(graphicsPath2, False)

Il existe deux autres éléments que vous pouvez ajouter à un chemin d’accès : des chaînes et des secteurs. Une tarte est une partie de l’intérieur d’un ellipse. L’exemple suivant crée un chemin d’accès à partir d’un arc, d’un spline carte inal, d’une chaîne et d’un secteur :

GraphicsPath myGraphicsPath = new GraphicsPath();

Point[] myPointArray =
{
    new Point(5, 30),
    new Point(20, 40),
    new Point(50, 30)
};

FontFamily myFontFamily = new FontFamily("Times New Roman");
PointF myPointF = new PointF(50, 20);
StringFormat myStringFormat = new StringFormat();

myGraphicsPath.AddArc(0, 0, 30, 20, -90, 180);
myGraphicsPath.StartFigure();
myGraphicsPath.AddCurve(myPointArray);
myGraphicsPath.AddString("a string in a path", myFontFamily,
   0, 24, myPointF, myStringFormat);
myGraphicsPath.AddPie(230, 10, 40, 40, 40, 110);
myGraphics.DrawPath(myPen, myGraphicsPath);
Dim myGraphicsPath As New GraphicsPath()

Dim myPointArray As Point() = { _
   New Point(5, 30), _
   New Point(20, 40), _
   New Point(50, 30)}

Dim myFontFamily As New FontFamily("Times New Roman")
Dim myPointF As New PointF(50, 20)
Dim myStringFormat As New StringFormat()

myGraphicsPath.AddArc(0, 0, 30, 20, -90, 180)
myGraphicsPath.StartFigure()
myGraphicsPath.AddCurve(myPointArray)
myGraphicsPath.AddString("a string in a path", 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’un chemin d’accès n’a pas besoin d’être connecté ; l’arc, carte inal spline, chaîne et secteurs sont séparés.

Paths

Voir aussi