Partager via


Splines cardinales

Une spline cardinale est une séquence de courbes individuelles jointes pour former une courbe plus grande. Le spline est spécifié par un tableau de points et un paramètre de tension. Une spline cardinale passe en douceur à chaque point du tableau ; il n’y a pas de coins aigus et pas de changements brusques dans l’étroitesse de la courbe. L’illustration suivante montre un ensemble de points et une spline cardinale qui passe à chaque point de l’ensemble.

illustration montrant une spline cardinale qui passe à six points définis

Une spline physique est un morceau mince de bois ou d’autres matériaux flexibles. Avant l’avènement des splines mathématiques, les concepteurs utilisaient des splines physiques pour dessiner des courbes. Un concepteur placerait la spline sur un morceau de papier et l’ancrerait à un ensemble donné de points. Le concepteur peut ensuite créer une courbe en dessinant le long du spline avec un crayon. Un ensemble donné de points peut produire une variété de courbes, en fonction des propriétés du spline physique. Par exemple, une spline avec une résistance élevée à la pliage produirait une courbe différente de celle d’un spline extrêmement flexible.

Les formules des splines mathématiques sont basées sur les propriétés des tiges flexibles, de sorte que les courbes produites par des splines mathématiques sont similaires aux courbes qui ont été produites une fois par des splines physiques. Tout comme les splines physiques de tensions différentes produisent des courbes différentes à travers un ensemble donné de points, les splines mathématiques avec des valeurs différentes pour le paramètre de tension produisent des courbes différentes à travers un ensemble donné de points. L’illustration suivante montre quatre splines cardinales passant par le même ensemble de points. La tension s’affiche pour chaque spline. Notez qu’une tension de 0 correspond à une tension physique infinie, forçant la courbe à prendre le chemin le plus court (lignes droites) entre les points. Une tension de 1 correspond à aucune tension physique, ce qui permet au spline de prendre le chemin d’une courbe minimale totale. Avec des valeurs de tension supérieures à 1, la courbe se comporte comme un ressort compressé, poussé pour prendre un chemin plus long.

illustration montrant quatre splines cardinales à travers les trois mêmes points

Notez que les quatre splines de la figure précédente partagent la même ligne tangente au point de départ. La tangente est la ligne dessinée du point de départ au point suivant le long de la courbe. De même, la tangente partagée au point de fin est la ligne dessinée du point de fin au point précédent de la courbe.

Pour dessiner un spline cardinal, vous avez besoin d’un objet graphique, d’un objet stylet et d’un tableau d’objets Point. L’objet Graphics fournit la méthode DrawCurve, qui dessine le spline, et l’objet Pen stocke les attributs du spline, tels que la largeur de trait et la couleur. Le tableau d’objets Point stocke les points que la courbe traversera. L’exemple suivant dessine une spline cardinale qui passe par les points de myPointArray. Le troisième paramètre est la tension.

myGraphics.DrawCurve(&myPen, myPointArray, 3, 1.5f);