Функция 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
Категория
Линии и кривые