Partager via


Dessin de splines cardinales

Une spline cardinale est une courbe qui passe en douceur à travers 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 Graphics::D rawCurve . L’exemple suivant dessine une spline cardinale en forme de cloche qui passe à travers cinq points désignés :

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

Pen pen(Color(255, 0, 0, 255));
graphics.DrawCurve(&pen, points, 5);

L’illustration suivante montre la courbe et cinq points.

illustration d’une spline cardinale qui traverse un ensemble de cinq points

Vous pouvez utiliser la méthode Graphics::D rawClosedCurve de la classe Graphics pour dessiner une spline cardinale fermée. Dans une spline cardinale fermée, la courbe passe par le dernier point du tableau et se connecte au premier point du tableau.

L’exemple suivant dessine une spline cardinale fermée qui passe à travers six points désignés.

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

Pen pen(Color(255, 0, 0, 255));
graphics.DrawClosedCurve(&pen, points, 6);

L’illustration suivante montre la spline fermée avec les six points :

illustration d’une spline cardinale fermée qui traverse un ensemble de six points

Vous pouvez modifier la façon dont une spline cardinale se plie en passant un argument de tension à la méthode Graphics::D rawCurve . L’exemple suivant dessine trois splines cardinales qui passent par le même ensemble de points :

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

Pen pen(Color(255, 0, 0, 255));
graphics.DrawCurve(&pen, points, 5, 0.0f);  // tension 0.0
graphics.DrawCurve(&pen, points, 5, 0.6f);  // tension 0.6
graphics.DrawCurve(&pen, points, 5, 1.0f);  // tension 1.0

L’illustration suivante montre les trois splines ainsi que leurs valeurs de tension. Notez que lorsque la tension est 0, les points sont reliés par des lignes droites.

illustration de trois splines cardinales passant par le même ensemble de points, mais à des tensions différentes