PureBasic & GDI+ 1.0
GraphicsPath



Un objet Path ou GraphicsPath est composé d'une ou plusieurs figures. Lorsque l'on ajoute des lignes et ou des courbes à un GraphicsPath, ces lignes et courbes deviennent une partie d'une figure. Les lignes ou courbes d'une même figure qui ne sont pas fermées sont reliées entres elles par un segment de droite. Le point final d'une ligne ou courbe est relié au point de départ de la prochaine ligne ou courbe. Si une forme fermée comme un cercle etc. est ajouté à la figure courante, elle n'est pas reliée au dernier point de la forme précédente. Deux figures consécutives d'un même GraphicsPath ne sont pas reliées.

Certaines fonctions 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. Il est préférable d'utiliser la fonction GdipGetPointCount() pour retrouver ce nombre de points pour dimensionner correctement les tableaux utilisant les points retrouvés.

Pour commencer une nouvelle figure, on utilise la fonction GdipStartPathFigure(). Une figure peut être ouverte ou fermée. Pour fermer une figure, on utilise la fonction GdipClosePathFigure(). Pour fermer toutes les figures, on utilise la fonction GdipClosePathFigures().

Une nouvelle figure est créée de manière implicite lorsqu'un tracé est créé ou lorsqu'une figure est fermée. Une nouvelle figure est créée de manière explicite lorsque la fonction GdipClosePathFigure() est appelée.

Après l'appel de GdipClosePathFigure(), la prochaine ligne, courbe ou forme ajoutée au GraphicsPath est un élément de la prochaine figure. Quand vous dessinez un GraphicsPath, le point final de chaque figure fermée est automatiquement relié au point de départ de cette figure. Certaines formes (par exemple les rectangles, les ellipses etc.) sont intrinsèquement fermées. Quand vous ajoutez une forme intrinsèquement fermée à un GraphicsPath, cette forme est une figure par elle-même et cette figure est considérée fermée même si vous n'appelez pas la fonction GdipClosePathFigure().

Les fonctions suivantes ajoutent des figures intrinsèquement fermées :

GdipAddPathClosedCurve
GdipAddPathClosedCurve2
GdipAddPathClosedCurve2I
GdipAddPathClosedCurveI
GdipAddPathEllipse
GdipAddPathEllipseI
GdipAddPathPie
GdipAddPathPieI
GdipAddPathPolygon
GdipAddPathPolygonI
GdipAddPathRectangle
GdipAddPathRectangleI
GdipAddPathRectangles
GdipAddPathRectanglesI
GdipAddPathString
GdipAddPathStringI

Un objet GraphicsPath stocke une suite de lignes, courbes et formes. Vous pouvez dessiner l'ensemble en appelant la fonction GdipDrawPath(). Vous pouvez diviser l'ordre des lignes, des courbes et des formes des figures; avec les fonctions du groupe PathIterator, on peut dessiner les figures choisies. On peut également placer des marqueurs afin de pouvoir dessiner les parties choisies du GraphicsPath.

L'intérieur des tracés peuvent être remplis. Lors d'une opération de remplissage ou de la définition d'une zone de découpage (par exemple, si un tracé est rendu à l'aide de GdipFillPath()), toutes les figures ouvertes sont fermées à l'aide d'une ligne reliant les premier et dernier points de la figure.

Les coordonnées des formes géométriques d'un tracé sont stockées par le moteur graphique sous forme de coordonnées universelles.

La direction d'une figure décrit comment les segments de lignes et de courbes sont tracés entre les points de début et de fin. Elle est définie en tenant compte de l'ordre dans lequel les lignes et les courbes sont ajoutées à une figure ou par la forme géométrique. Cette direction permet de déterminer l'intérieur d'un tracé permettant le remplissage et le découpage.

Liste des commandes
GdipAddPathArc
GdipAddPathArcI
GdipAddPathBezier
GdipAddPathBezierI
GdipAddPathBeziers
GdipAddPathBeziersI
GdipAddPathClosedCurve
GdipAddPathClosedCurve2
GdipAddPathClosedCurve2I
GdipAddPathClosedCurveI
GdipAddPathCurve
GdipAddPathCurve2
GdipAddPathCurve2I
GdipAddPathCurve3
GdipAddPathCurve3I
GdipAddPathCurveI
GdipAddPathEllipse
GdipAddPathEllipseI
GdipAddPathLine
GdipAddPathLine2
GdipAddPathLine2I
GdipAddPathLineI
GdipAddPathPath
GdipAddPathPie
GdipAddPathPieI
GdipAddPathPolygon
GdipAddPathPolygonI
GdipAddPathRectangle
GdipAddPathRectangleI
GdipAddPathRectangles
GdipAddPathRectanglesI
GdipAddPathString
GdipAddPathStringI
GdipClearPathMarkers
GdipClonePath
GdipClosePathFigure
GdipClosePathFigures
GdipCreatePath
GdipCreatePath2
GdipCreatePath2I
GdipDeletePath
GdipFlattenPath
GdipGetPathData
GdipGetPathFillMode
GdipGetPathLastPoint
GdipGetPathPoints
GdipGetPathPointsI
GdipGetPathTypes
GdipGetPathWorldBounds
GdipGetPathWorldBoundsI
GdipGetPointCount
GdipIsOutlineVisiblePathPoint
GdipIsOutlineVisiblePathPointI
GdipIsVisiblePathPoint
GdipIsVisiblePathPointI
GdipResetPath
GdipReversePath
GdipSetPathFillMode
GdipSetPathMarker
GdipStartPathFigure
GdipTransformPath
GdipWarpPath
GdipWidenPath
GdipWindingModeOutline