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 ($GPID_ERR*).

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