Функция PolyBezier рисует одну или несколько кривых Бизье.
Синтаксис
BOOL PolyBezier( HDC hdc, // дескриптор контекста устройства CONST POINT* lppt, // конечные точки и контрольные точки DWORD cPoints // количество конечных точек и контрольных точек ); |
hdc
[in] Дескриптор контекста устройства.
lppt
[in] Указатель на массив структур POINT, который содержат конечные точки и контрольные точки кривой(ых), в логических единицах.
cPoints
[in] Определяет число точек в массиве lppt. Чтобы начертить кривую, это значение должно быть на единицу больше, а не тройное число кривой, потому что каждая кривая Бизье требует двух контрольных точек и конечной точки, а первоначальная кривая требует дополнительной начальной точки.
Если функция завершается успешно, возвращаемое значение - не нуль.
Если функция завершается ошибкой, возвращаемое значение - нуль.
Windows NT/2000/XP: Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.
Функция PolyBezier рисует кубическую кривую Бизье при помощи использования конечных и контрольных точек, определенных параметром lppt. Первая кривая рисуется от первой точки до четвертой точки при помощи использования второй и третьей точки как контрольных точек. Каждая последующая кривая в последовательности нуждается точно также еще в трех точках: конечная точка предыдущей кривой используется как начальная точка, следующие две точки в последовательности - контрольные точки, а третья - конечная точка.
Текущая позиция не используется, ни модернизируется функцией PolyBezier. Фигура не закрашивается.
Эта функция рисует линии, используя текущее перо.
Windows 95/98/Me: функция PolyBezier не может рисовать более некоторого числа точек. Это ограничение зависит от ширины линии (то есть, ширины пера, выбранного в контекст устройства (DC)), как показано в нижеследующей таблице.
| Ширина линии | Максимально разрешенное число точек |
|---|---|
| ширина линии - 1 | 16K |
| ширина линии> 1 (то есть, толстая линия) и устройство поддерживает толстую линию | 16K |
| ширина линии> 1, но устройство не поддерживает толстую линию | приблизительно 1360 (то есть, приблизительно 16 КБ / 12) |
Любые дополнительные точки игнорируются. Чтобы начертить линию с большим количеством точек, разделите данные на группы, которые имеют меньше, а не максимальное число точек и вызывайте функцию для каждой группы точек. Не забудьте соединять отрезки прямых.
Пример смотри в статье Перерисовка в обновленном регионе.
Смотри также
Обзор Линии и кривые, Функции, используемые линиями и кривыми, MoveToEx, POINT, PolyBezierTo
|
Размещение и совместимость PolyBezier |
||
| К | Windows XP | Да |
| л | Windows 2000 Professional | Да |
| и | Windows NT Workstation | Да версии 3.1 и старше |
| е | Windows Me | Да |
| н | Windows 98 | Да |
| т | Windows 95 | Да |
| С | Windows Server 2003 | Да |
| е | Windows 2000 Server | Да |
| р | Windows NT Server | Да |
| в | ||
| е | ||
| р | ||
| Используемая библиотека | Gdi32.lib | |
| Используемая DLL | - | |
| Заголовочный файл | ||
| - объявлено в | Wingdi.h | |
| - включено в | Windows.h | |
| Unicode | Нет | |
| Замечания по платформе | Не имеется | |