_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Пример
#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