Dessine une spline cardinale
#include <GDIPlus.au3>
_GDIPlus_GraphicsDrawCurve ( $hGraphics, $aPoints [, $hPen = 0] )
$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é. |
Succès: | Retourne True. |
Échec: | Retourne False et définit @error <> 0, @extended contient le code erreur GPSTATUS ($GPID_ERR*). |
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.
Consultez GdipDrawCurve dans la Librairie MSDN.
#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
#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