Функция _GDIPlus_PathAddCurve

         Описание функции


_GDIPlus_PathAddCurve

Добавляет кривую к текущей фигуре Path

#Include <GDIP.au3>
_GDIPlus_PathAddCurve($hPath, $aPoints)

Параметры

$hPath Указатель на объект GraphicsPath
$aPoints Массив, точек кривой:
[0][0] - Кол-во точек
[1][0] - X-координата точки 1
[1][1] - Y-координата точки 1
[2][0] - X-координата точки 2
[2][1] - Y-координата точки 2
...
[n][0] - X-координата точки n
[n][1] - Y-координата точки n

Возвращаемое значение

Успех:Возвращает True
Ошибка:Возвращает False, либо:
Если ошибка DllCall(), устанавливает @error и @extended возвращённые вызовом DllCall()
$GDIP_STATUS содержит не нулевое значение кода ошибки.

Примечания

Кривая представляет собой линию, проходящую через все точки массива

См. также

См. также

Искать GdipAddPathCurve в библиотеке MSDN

Пример

; Authenticity
; http://www.autoitscript.com/forum/index.php?showtopic=106021
#include <GUIConstantsEx.au3>
#include <GDIP.au3>

Example()

Func Example()
    Local $hGUI, $hGraphic, $hBrush, $hPen, $hPen2, $hPath

    $hGUI = GUICreate("Добавляет кривую в GraphicsPath", 400, 200)
    GUISetState(@SW_SHOW)

    ; Инициализирует библиотеку GDI+
    _GDIPlus_Startup()

    ; Создаёт графический объект из дескриптора окна
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)

    ; Задаёт режим сглаживания $GDIP_SMOOTHINGMODE_HIGHQUALITY = 2
    _GDIPlus_GraphicsSetSmoothingMode($hGraphic, 2)

    ; Очищает графический объект белым цветом
    _GDIPlus_GraphicsClear($hGraphic, 0xFFFFFFFF)

    ; Создаёт кисти и карандаши
    $hBrush = _GDIPlus_BrushCreateSolid(0x7F8800AA) ; для заливки
    $hPen = _GDIPlus_PenCreate(0xFF8800AA, 2) ; для линии
    $hPen2 = _GDIPlus_PenCreate(0xFFFF0000, 2) ; для квадратных красных точек

    ; Задаёт точки кривой
    Local $aPoints[5][2] = [[4]]
    $aPoints[1][0] = 10
    $aPoints[1][1] = 100
    $aPoints[2][0] = 100
    $aPoints[2][1] = 190
    $aPoints[3][0] = 300
    $aPoints[3][1] = 10
    $aPoints[4][0] = 390
    $aPoints[4][1] = 100

    ; Создаёт объект GraphicsPath
    $hPath = _GDIPlus_PathCreate()

    ; Создаёт надпись
    _GDIPlus_GraphicsDrawString($hGraphic, "Кривая", $aPoints[1][0], 20)

    ; Добавляет кривую в объект GraphicsPath
    _GDIPlus_PathAddCurve($hPath, $aPoints)

    ; Рисует прямоугольники в точках массива
    For $i = 1 To $aPoints[0][0]
        _GDIPlus_GraphicsDrawRect($hGraphic, $aPoints[$i][0] - 4, $aPoints[$i][1] - 4, 8, 8, $hPen2)
        $aPoints[$i][0] += 200
    Next

    ; Заливка объекта GraphicsPath
    _GDIPlus_GraphicsFillPath($hGraphic, $hPath, $hBrush)

    ; Рисует объект GraphicsPath
    _GDIPlus_GraphicsDrawPath($hGraphic, $hPath, $hPen)

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    ; Освобождает ресурсы
    _GDIPlus_PathDispose($hPath)
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_PenDispose($hPen)
    _GDIPlus_PenDispose($hPen2)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
EndFunc   ;==>Example