Функция PolyBezierTo

Declare Function PolyBezierTo Lib "gdi32" (ByVal hdc As Long, lppt As POINTAPI, ByVal cCount As Long) As Long
PolyBezierTo рисует серию кривых Безье, перемещая текущую позицию пера в конец предыдущей кривой
hdc
Дескриптор контекста устройства
lppt
Массив, содержащий все контрольные и завершающие точки для кривых Безье
cPoints
Общее число точек массива lppt

Пример

Dim hPen As Long  ' дескриптор пера
Dim hOldPen As Long  ' дескриптор предыдущего пера
Dim curpt As POINTAPI  ' предудущая текущая точка
Dim pts(0 To 5) As POINTAPI  ' масссив точек для кривых
Dim lRet As Long  ' возвращаемое значение

' Получим дескриптор пера
hPen = GetStockObject(BLACK_PEN)
' Выберем перо для Form1
hOldPen = SelectObject(Form1.hDC, hPen)

' Перемещаем текущую точку в (200, 25) и рисуем линию к точке (100,100)
lRet = MoveToEx(Form1.hDC, 200, 25, curpt)
lRet = LineTo(Form1.hDC, 100, 100)

' Загружаем массив точек для двух кривых
pts(0).x = 125: pts(0).y = 75   ' контрольная точка (125,75)
pts(1).x = 150: pts(1).y = 125  ' контрольная точка (150,125)
pts(2).x = 175: pts(2).y = 100  ' завершающая точка первой кривой (175,100)
' Аналогично со второй кривой, которая начинается с точки (175,100)
pts(3).x = 225: pts(3).y = 50
pts(4).x = 300: pts(4).y = 150
pts(5).x = 250: pts(5).y = 200

' Рисуем две кривые
lRet = PolyBezierTo(Form1.hDC, pts(0), 6)
' Выбираем предыдущее перо для Form1
lRet = SelectObject(Form1.hDC, hOldPen)

Смотри также

PolyBezier

Категория

Линии и кривые