Функция PolyBezier


Функция 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 Нет
 Замечания по платформе Не имеется

 

Назад в оглавление
На главную страницу
В оглавление справки

Hosted by uCoz