GdipAddPathCurve3I()



Syntaxe
Resultat.i = GdipAddPathCurve3(*path, @points.Point, count.l, offset.l, numberOfSegments.l, tension.f)
Paramètres
*path

[in] Pointeur sur un objet GraphicsPath.

points.Point

[in] Tableau de variables Point (nombres entiers) qui représentent les points définissant la spline cardinale.

count.l

[in] Nombre d'éléments du tableau de points points.Point.

offset.l

[in] Index de l'élément du tableau de points points.Point utilisé comme premier point de la courbe.

numberOfSegments.l

[in] Nombre de segments utilisés pour dessiner la courbe. Cette valeur doit être au minimum de 1. Un segment peut être représenté comme une ligne ou courbe reliant deux points consécutifs du tableau.

tension.f

[in] Courbure de la courbe entre les points. La valeur 0 correspondant à la courbe la plus petite (angle le plus prononcé) et 1 représente la courbe la plus régulière.

Description
Cette fonction permet de dessiner une spline cardinale, le tracé n'est pas fermé.

Une spline cardinale est définie par des points et un paramètre de tension qui influence la forme de la courbe. C'est une suite de courbes individuelles jointes entre elles pour former une plus grande courbe. La courbe passe par chaque point de manière adoucie (sans angle pointu). Il en résulte une allure lissée (douce) de la courbe (sauf avec des valeurs faibles du paramètre tension).

Si la figure contient déjà une ou des lignes ou courbes et que l'on ne démarre pas une nouvelle figure, une ligne est ajoutée pour relier le point de terminaison du segment précédent au début de la courbe.

L'objet GraphicsPath ne stocke pas les points passés par la fonction GdipAddPathCurve3I() mais il convertit la spline cardinale en en une suite de courbes de Bézier et sauvegarde les points qui définissent ces courbes de Bézier. Si vous avez besoin des coordonnées d'origine des points, vous devez en garder une copie car il n'est pas possible de les retrouver à partir de l'objet GraphicsPath.

Pour cette fonction, la courbe est définie par le tableau de points mais le paramètre offset.l permet de définir quel point du tableau sera le point de départ de la courbe, sachant que le premier point a l'indice 0. Les segments précédents le point défini par offset ne seront pas dessinés.

Le paramètre numberOfSegments.l spécifie le nombre de segments dessinés. Il faut faire attention à la valeur de numberOfSegments.l qui de toute façon ne peut excéder le nombre maximum de segments défini par le tableau. Si aucun segment n'apparaît, c'est que ce paramètre a une valeur probablement trop élevée. La somme des paramètres offset et numberOfSegments doit être supérieure à 1 et inférieur ou égale au nombre maximum de segments possibles.

Le fichier d'exemple défini un tableau de 7 points (6 segments). La fonction dessine le tracé à partir du troisième point et d'une longueur de 3 segments.

Résultat de la fonction
Si la fonction réussit, elle retourne #Ok qui est une constante de l'énumération status.
Si la fonction échoue, elle retourne une des autres valeurs de l'énumération status.
PB - OS
PureBasic v4.30 bêta 4 (Windows - x86)
Testé avec Windows Vista édition familiale Premium