Function Reference


_GDIPlus_GraphicsDrawCurve

Draw a cardinal spline

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

Parameters

$hGraphics Handle to a Graphics object
$aPoints Array that specifies the points of the curve:
    [0][0] - Number of points
    [1][0] - Point 1 X position
    [1][1] - Point 1 Y position
    [2][0] - Point 2 X position
    [2][1] - Point 2 Y position
    [n][0] - Point n X position
    [n][1] - Point n Y position
$hPen [optional] Handle to a pen object that is used to draw the spline. If 0, a solid black pen with a width of 1 will be used.

Return Value

Success: True.
Failure: False and sets the @error flag to non-zero, @extended may contain GPSTATUS error code ($GPIP_ERR* see GPIPlusConstants.au3).

Remarks

A segment is defined as a curve that connects two consecutive points in the cardinal spline.
The ending point of each segment is the starting point for the next.

See Also

Search GdipDrawCurve in MSDN Library.

Example

Example 1

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

Example()

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

        ; Create GUI
        $hGUI = GUICreate("GDI+", 400, 300)
        GUISetState(@SW_SHOW)

        ; Draw a cardinal spline
        _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)

        ; Loop until the user exits.
        Do
        Until GUIGetMsg() = $GUI_EVENT_CLOSE

        ; Clean up resources
        _GDIPlus_GraphicsDispose($hGraphic)
        _GDIPlus_Shutdown()
EndFunc   ;==>Example

Example 2

#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(0xFFFFFFFF, 4) ;color format 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

        ;cleanup GDI+ resources
        _GDIPlus_PenDispose($hPen)
        _GDIPlus_GraphicsDispose($hGraphics)
        _GDIPlus_Shutdown()
        GUIDelete($hGUI)
EndFunc   ;==>Example