Zeichnet eine Bezierkurve
#include <GDIPlus.au3>
_GDIPlus_GraphicsDrawBezier ( $hGraphics, $nX1, $nY1, $nX2, $nY2, $nX3, $nY3, $nX4, $nY4 [, $hPen = 0] )
$hGraphics | Handle zu dem Grafik-Objekt |
$hPen | Handle zu dem Zeichenstift-Objekt, welches verwendet wird um den Bogen zu zeichnen |
$nX1 | X-Koordinate des Startpunktes |
$nY1 | Y-Koordinate des Startpunktes |
$nX2 | X-Koordinate des ersten Kontrollpunktes |
$nY2 | Y-Koordinate des ersten Kontrollpunktes |
$nX3 | X-Koordinate des zweiten Kontrollpunktes |
$nY3 | Y-Koordinate des zweiten Kontrollpunktes |
$nX4 | X-Koordinate des Endpunktes |
$nY4 | Y-Koordinate des Endpunktes |
$hPen | [optional] Handle zu dem Zeichenstift-Objekt, welches verwendet wird, um die Bezierkurve zu zeichnen. Falls 0, wird ein vollfarbig schwarz gefüllter Zeichenstift mit einer Breite von 1 verwendet. |
Erfolg: | True |
Fehler: | False und setzt das @error Flag auf ungleich null, das @extended Flag kann den GPSTATUS-Fehlercode ($GPID_ERR* siehe GDIPlusConstants.au3) enthalten. |
Eine Bezierkurve durchläuft nicht seine Kontrollpunkte.
Die Kontrollpunkte wirken wie Magnete, mit denen der Weg der Kurve in einer bestimmten Richtung beeinflusst werden kann.
Suche nach GdipDrawBezier in der MSDN Bibliothek.
#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
Example()
Func Example()
Local $hGui, $hGraphic
; Erstellt eine GUI
$hGui = GUICreate("GDI+", 400, 300)
GUISetState(@SW_SHOW)
; Zeichnet eine Bezierkurve
_GDIPlus_Startup()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGui)
_GDIPlus_GraphicsDrawBezier($hGraphic, 50, 50, 100, 5, 125, 25, 250, 50)
; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
; Ressourcen freigeben
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_Shutdown()
EndFunc ;==>Example
#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
Example()
Func Example()
_GDIPlus_Startup() ;initialize GDI+
Local Const $iWidth = 600, $iHeight = 600, $iBgColor = 0x303030 ;$iBGColor format RRGGBB
Local $hGUI = GUICreate("GDI+ Example (" & @ScriptName & ")", $iWidth, $iHeight) ;create a test GUI
GUISetBkColor($iBgColor, $hGUI) ;set GUI background color
GUISetState(@SW_SHOW)
Local $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI) ;create a graphics object from a window handle
_GDIPlus_GraphicsSetSmoothingMode($hGraphics, $GDIP_SMOOTHINGMODE_HIGHQUALITY) ;sets the graphics object rendering quality (antialiasing)
Local $hPen = _GDIPlus_PenCreate(0xFFFFFF00, 8) ;color format AARRGGBB (hex)
_GDIPlus_GraphicsDrawBezier($hGraphics, 50.25, 350.75, 100.5, 5.5, 125.5, 25.5, 550.5, 550.25, $hPen)
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
;cleanup GDI+ resources
_GDIPlus_PenDispose($hPen)
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_Shutdown()
GUIDelete($hGUI)
EndFunc ;==>Example