Partager via


Comment : dessiner des splines cardinales

Un spline carte inal est une courbe qui passe en douceur à travers un ensemble donné de points. Pour dessiner un spline carte inal, créez un objet et transmettez l’adresse d’un Graphics tableau de points à la DrawCurve méthode.

Dessin d’une spline cardinale en forme de cloche

  • L’exemple suivant dessine une spline carte inal en forme de cloche qui passe à cinq points désignés. L’illustration suivante montre la courbe et cinq points.

    Diagram that shows a bell-shaped cardinal spline.

Point[] points = {
   new Point(0, 100),
   new Point(50, 80),
   new Point(100, 20),
   new Point(150, 80),
   new Point(200, 100)};

Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255));
e.Graphics.DrawCurve(pen, points);
Dim points As Point() = { _
   New Point(0, 100), _
   New Point(50, 80), _
   New Point(100, 20), _
   New Point(150, 80), _
   New Point(200, 100)}

Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))
e.Graphics.DrawCurve(pen, points)

Dessin d’une spline cardinale fermée

  • Utilisez la DrawClosedCurve méthode de la Graphics classe pour dessiner un spline carte inal fermé. Dans un spline carte inal fermé, la courbe continue à travers le dernier point du tableau et se connecte au premier point du tableau. L’exemple suivant dessine un spline carte inal fermé qui passe à six points désignés. L’illustration suivante montre le spline fermé avec les six points :

Diagram that shows a closed cardinal spline.

Point[] points = {
   new Point(60, 60),
   new Point(150, 80),
   new Point(200, 40),
   new Point(180, 120),
   new Point(120, 100),
   new Point(80, 160)};

Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255));
e.Graphics.DrawClosedCurve(pen, points);
Dim points As Point() = { _
   New Point(60, 60), _
   New Point(150, 80), _
   New Point(200, 40), _
   New Point(180, 120), _
   New Point(120, 100), _
   New Point(80, 160)}

Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))
e.Graphics.DrawClosedCurve(pen, points)

Modification de la courbe d’un spline cardinal

  • Modifiez la façon dont un spline carte inal se plie en passant un argument de tension à la DrawCurve méthode. L’exemple suivant dessine trois splines carte inal qui passent par le même jeu de points. L’illustration suivante montre les trois splines ainsi que leurs valeurs de tension. Notez que lorsque la tension est de 0, les points sont reliés par des lignes droites.

Diagram that shows three cardinal splines.

Point[] points = {
   new Point(20, 50),
   new Point(100, 10),
   new Point(200, 100),
   new Point(300, 50),
   new Point(400, 80)};

Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255));
e.Graphics.DrawCurve(pen, points, 0.0f);
e.Graphics.DrawCurve(pen, points, 0.6f);
e.Graphics.DrawCurve(pen, points, 1.0f);
Dim points As Point() = { _
   New Point(20, 50), _
   New Point(100, 10), _
   New Point(200, 100), _
   New Point(300, 50), _
   New Point(400, 80)}

Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))
e.Graphics.DrawCurve(pen, points, 0.0F)
e.Graphics.DrawCurve(pen, points, 0.6F)
e.Graphics.DrawCurve(pen, points, 1.0F)

Compilation du code

Les exemples précédents sont conçus pour être utilisés avec Windows Forms et nécessitent PaintEventArgse, qui est un paramètre du Paint gestionnaire d’événements.

Voir aussi