UDF > GDIPlus > GraphicsPath >


_GDIPlus_PathCreate

Crée un objet GraphicsPath et initialise le mode de remplissage

#include <GDIPlus.au3>
_GDIPlus_PathCreate ( [$iFillMode = 0] )

Paramètre

$iFillMode [optionnel] Mode de remplissage de l'intérieur des tracés de figures:
    0 - Alternate: les zones sont remplis conformément à la règle de parité pair-impair
    1 - Winding: les zones sont remplis selon la règle d'enroulement non nul

Valeur de retour

Succès: Retourne le handle du nouvel objet GraphicsPath.
Échec: Retourne 0 et définit @error <> 0, @extended contient le code erreur GPSTATUS ($GPID_ERR*).

Remarques

Une application remplit l'intérieur d'un tracé à l'aide d'un des deux modes de remplissage: Alternate(0) ou Winding(1). Le mode détermine la façon de remplir et de découper l'intérieur d'une figure fermée.
Le mode par défaut est Alternate. Pour déterminer l'intérieur des figures fermées en mode alternate, dessinez une ligne à partir de n'importe quel point de début arbitraire du tracé jusqu'à un point situé nettement à l'extérieur du tracé. Si la ligne traverse un nombre impair de segments du tracé, le point de début se trouve dans la région fermée et appartient donc à la zone de remplissage ou de découpage. Un nombre pair d'intersections signifie que le point ne se trouve pas dans la zone à remplir ou à découper. Une figure ouverte est remplie ou découpée en traçant une ligne pour relier le dernier point au premier point de la figure.
Le mode Winding tient compte du sens des segments du tracé à chaque intersection. Il ajoute un pour chaque intersection dans le sens des aiguilles d'une montre et soustrait un pour chaque intersection dans le sens inverse des aiguilles d'une montre. Si le résultat est différent de zéro, le point est considéré comme situé dans la zone de remplissage ou de découpage. Une valeur zéro signifie que le point se situe en dehors de la zone de remplissage ou de découpage.
Une figure est considérée comme allant dans le sens des aiguilles d'une montre ou dans le sens contraire en fonction de l'ordre dans lequel ses segments sont dessinés.
Lorsque vous en avez terminé avec l'objet, appelez _GDIPlus_PathDispose() pour libérer les ressources de l'objet.

En relation

_GDIPlus_PathCreate2, _GDIPlus_PathDispose

Voir aussi

Consultez GdipCreatePath dans la Librairie MSDN.

Exemple

#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>

Example()

Func Example()
    Local $hGUI, $hGraphic, $hBrush, $hPen, $hPath, $hFamily, $tLayout

    ; Crée une GUI
    $hGUI = GUICreate("GDI+", 420, 160)
    GUISetState(@SW_SHOW)

    ; Dessine une chaîne en utilisant un Path
    _GDIPlus_Startup()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI) ; Crée un objet graphique à partir du handle de la fenêtre
    $hBrush = _GDIPlus_BrushCreateSolid(0xFFDD2200)
    $hPen = _GDIPlus_PenCreate(0xFFFFBB00, 2)

    $hPath = _GDIPlus_PathCreate() ; Crée un objet path

    $hFamily = _GDIPlus_FontFamilyCreate("Arial") ; Crée un objet FontFamily
    $tLayout = _GDIPlus_RectFCreate() ; Crée une chaîne délémitée par un rectangle de coin X=0, Y=0
    _GDIPlus_PathAddString($hPath, "AutoIt rulez!", $tLayout, $hFamily, 0, 72, 0) ; Ajoute le contour de la chaîne au Path

    _GDIPlus_GraphicsSetSmoothingMode($hGraphic, $GDIP_SMOOTHINGMODE_HIGHQUALITY) ; Définit pour l'objet graphique la qualité de rendu antialiasing
    _GDIPlus_GraphicsClear($hGraphic, 0xFF000000)
    _GDIPlus_GraphicsFillPath($hGraphic, $hPath, $hBrush) ; Dessine le Path avec le handle Graphic (GUI)
    _GDIPlus_GraphicsDrawPath($hGraphic, $hPath, $hPen) ; Dessine le Path avec le handle Graphic (GUI)

    ; Boucle jusqu'à ce que l'utilisateur quitte.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    ; Nettoie les ressources
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_PathDispose($hPath)
    _GDIPlus_PenDispose($hPen)
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
EndFunc   ;==>Example