UDF > GDIPlus > Graphics >


_GDIPlus_GraphicsDrawCurve

Dessine une spline cardinale

#include <GDIPlus.au3>
_GDIPlus_GraphicsDrawCurve ( $hGraphics, $aPoints [, $hPen = 0] )

Paramètres

$hGraphics Handle de l'objet Graphics
$aPoints Tableau qui indique des points de la courbe :
    [0][0] - Nombre de points
    [1][0] - Point 1 : abscisse X
    [1][1] - Point 1 : ordonnée Y
    [2][0] - Point 2 : abscisse X
    [2][1] - Point 2 : ordonnée Y
    [n][0] - Point n : abscisse X
    [n][1] - Point n : ordonnée Y
$hPen [optionnel] Handle de l'objet Pen qui est utilisé pour dessiner la spline. Si 0, un crayon noir qui trace des lignes continues de largeur 1 sera utilisé.

Valeur de retour

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

Remarque

Un segment est défini comme une courbe qui relie deux points consécutifs de la spline cardinale.
Le point qui termine chaque segment est le point de départ du segment suivant.

Voir aussi

Consultez GdipDrawCurve dans la Librairie MSDN.

Exemples

Exemple 1

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

Example()

Func Example()
    Local $hGUI, $hGraphic, $aPoints[5][2]

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

    ; Dessine une spline cardinale
    _GDIPlus_Startup()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)

    $aPoints[0][0] = 4
    $aPoints[1][0] = 0
    $aPoints[1][1] = 100
    $aPoints[2][0] = 50
    $aPoints[2][1] = 50
    $aPoints[3][0] = 100
    $aPoints[3][1] = 100
    $aPoints[4][0] = 150
    $aPoints[4][1] = 50

    _GDIPlus_GraphicsDrawCurve($hGraphic, $aPoints)

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

    ; Nettoie les ressources
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
EndFunc   ;==>Example

Exemple 2

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

Example()

Func Example()
    _GDIPlus_Startup() ; Initialise GDI+
    Local Const $iWidth = 600, $iHeight = 600, $iBgColor = 0x303030 ; Le format de $iBGColor est RRGGBB

    Local $hGUI = GUICreate("GDI+ example", $iWidth, $iHeight) ; Crée une GUI de test
    GUISetBkColor($iBgColor, $hGUI) ; Définit la couleur de fond de la GUI
    GUISetState(@SW_SHOW)

    Local $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI) ; Crée un objet graphique à partir d'un handle fenêtre
    _GDIPlus_GraphicsSetSmoothingMode($hGraphics, $GDIP_SMOOTHINGMODE_HIGHQUALITY) ; Définit pour l'objet graphique la qualité de rendu antialiasing
    Local $hPen = _GDIPlus_PenCreate(0xFFFFFFFF, 4) ; Format de couleur AARRGGBB (hex)

    Local $aPoints[8][2]
    $aPoints[0][0] = 7
    $aPoints[1][0] = 50.5
    $aPoints[1][1] = 50.5
    $aPoints[2][0] = 100.75
    $aPoints[2][1] = 25.33
    $aPoints[3][0] = 200.66
    $aPoints[3][1] = 5.5
    $aPoints[4][0] = 250.25
    $aPoints[4][1] = 50.75
    $aPoints[5][0] = 300.125
    $aPoints[5][1] = 100.375
    $aPoints[6][0] = 590.8
    $aPoints[6][1] = 200.222
    $aPoints[7][0] = 250.55
    $aPoints[7][1] = 590.45

    _GDIPlus_GraphicsDrawCurve($hGraphics, $aPoints, $hPen)

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    ; Nettoie les ressources GDI+
    _GDIPlus_PenDispose($hPen)
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_Shutdown()
    GUIDelete($hGUI)
EndFunc   ;==>Example