Comment : dessiner des splines cardinales

Une spline cardinale est une courbe qui passe de manière souple par un ensemble donné de points. Pour dessiner une spline cardinale, créez un objet Graphics et passez l'adresse d'un tableau de points à la méthode DrawCurve.

Dessin d'une spline cardinale en forme de cloche

  • L'exemple suivant dessine une spline cardinale en forme de cloche qui passe par cinq points définis. L'illustration suivante montre la courbe et les cinq points.

    Spline cardinale

        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)

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);

Dessin d'une spline cardinale fermée

  • La méthode DrawClosedCurve de la classe Graphics peut s'utiliser pour dessiner une spline cardinale fermée. Dans ce cas, la courbe se poursuit jusqu'au dernier point de la matrice et rejoint le premier point de la matrice. L'exemple suivant dessine une spline cardinale fermée qui passe par six points définis : L'illustration suivante représente la spline fermée avec les six points.

Spline cardinale

        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)

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);

Modification de la courbure d'une spline cardinale

  • Pour modifier la courbure d'une spline cardinale, passez un argument de tension à la méthode DrawCurve. L'exemple suivant dessine trois splines cardinales qui passent par un même ensemble de points. L'illustration suivante représente les trois splines avec leur valeur de tension. Notez que si la tension a pour valeur zéro (0), les points sont reliés par des lignes droites.

Spline cardinale

        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)

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);

Compilation du code

Les exemples précédents sont destinés à une utilisation avec Windows Forms et nécessitent PaintEventArgs e, qui est un paramètre du gestionnaire d'événements Paint.

Voir aussi

Autres ressources

Lignes, courbes et formes

Génération et dessin de courbes