GdipPathIterHasCurve()



Syntaxe
Resultat.i = GdipPathIterHasCurve(*iterator, @hasCurve.i)
Paramètres
*iterator

[in] Pointeur sur un objet GraphicsPathIterator existant.

hasCurve.i

[out] hasCurve recevra le résultat du test sous forme d'une valeur booléenne, #True si le GraphicsPath a au moins une courbe, sinon #False.

Description

Cette fonction permet de tester si le GraphicsPath a au moins une courbe.

Certaines fonctions des GraphicsPath ne stockent pas les tableaux de points d'origine des formes ajoutées mais elles convertissent les courbes (spline cardinale etc.) en une suite de courbes de Bézier et sauvegardent les points qui définissent ces courbes de Bézier. Il en résulte que le nombre de points retrouvés est plus important que le nombre de points d'origine définissant les figures. Toutes les courbes du path sont représentées comme des splines de Bézier, ainsi un point donné du tableau a un des deux types suivant: #PathPointTypeLine ou #PathPointTypeBezier.

Toutes les courbes d'un tracé sont stockées sous la forme de séquences de splines Bézier. Si vous ajoutez une ellipse à un tracé, on spécifie le coin supérieur gauche, la largeur et la hauteur du rectangle englobant l'ellipse. Ces nombres (coin supérieur gauche, largeur et hauteur) ne sont pas stockés par la fonction. L'ellipse est convertie en une séquence de quatre splines Bézier. Le tracé stocke les points de début, de fin et les points de contrôle de ces splines Bézier. Un tracé stocke un tableau de points d'arrêt, appartenant chacun à une ligne ou à une spline Bézier. Si certains des points du tableau appartiennent à des splines Bézier, la fonction retourne #True. Si tous les points du tableau appartiennent à des lignes, la fonction retourne #False. Certaines fonctions aplanissent un tracé, ce qui signifie que toutes les courbes du tracé sont converties en séquences de lignes. Lorsqu'un tracé a été aplani, la fonction retourne toujours #False.

Les fonctions suivantes applanissent un tracé :

GdipFlattenPath(), GdipWidenPath() et GdipWarpPath().

L'exemple va créer un GraphicsPath et lui ajoute 4 lignes pour obtenir un parallélogramme, ajoute une ellipse et un rectangle. Un GraphicsPathIterator est créé puis on teste la présence d'une courbe et on affiche le résultat du test qui vaut #True. Si l'on ajoute un point virgule devant la fonction de création de l'ellipse (code en commentaire) et que l'on exécute le code, la fonction retourne #False.

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