
Деформация изображения при изменении размера рисунка - один из недостатков (растровой графики)
Параметр mode определяет тип примитива, который задается внутри и может принимать следующие значения:
GL_POINTS |
Каждая вершина задает координаты некоторой точки. |
GL_LINES |
Каждая отдельная пара вершин определяет отрезок; если задано нечетное число вершин, то последняя вершина игнорируется. |
GL_LINE_STRIP |
Каждая следующая вершина задает отрезок вместе с предыдущей. |
GL_LINE_LOOP |
Отличие от предыдущего примитива только в том, что последний отрезок определяется последней и первой вершиной, образуя замкнутую ломаную. |
GL_TRIANGLES |
Каждая отдельная тройка вершин определяет треугольник; если задано не кратное трем число вершин, то последние вершины игнорируются. |
GL_TRIANGLE_STRIP |
Каждая следующая вершина задает треугольник вместе с двумя предыдущими. |
GL_TRIANGLE_FAN |
Треугольники задаются первой и каждой следующей парой вершин (пары не пересекаются). |
GL_QUADS |
Каждая отдельная четверка вершин определяет четырехугольник; если задано не кратное четырем число вершин, то последние вершины игнорируются. |
GL_QUAD_STRIP |
Четырехугольник с номером n определяется вершинами с номерами 2n-1, 2n, 2n+2, 2n+1. |
GL_POLYGON |
Последовательно задаются вершины выпуклого многоугольника. |
GetTimerResolution выполняет действие определяет реальную дискретность таймера
CreateSurface задание первичной поверхности.
GetDC Считывает контекст дисплея для выполнения опеpаций интеpфейса GDI в области пользователя окна.
CreateDC Создает контекст устpойства для устpойства .
ReleaseDC освобождает ресурсы,которые были заняты при использовании GetDC для получения контекста устройства.
SetPolyFillMode Устанавливает pежим заполнения многоугольника, используемый функциями GDI, в котоpом используется алгоpитм вычисления внутpенних точек многоугольника.
6.7.2. Закраска методом Гуро
Метод
основан на определении освещенности
грани в ее вершинах с последующей
билинейной (би=2) интерполяцией результатов
на всю грань. Пусть проекция некоторой
грани на экран является выпуклым
4-угольником. Пусть интенсивности вершин
определены (например, по формуле (3))
и равны
.
Пусть W
произвольная точка
грани.
Проведем через нее горизонталь. Пусть
P
и Q
точки пере-
с
ечения
горизонтали с границами проекции грани.
Будем считать,
ч
то
интенсивность на отрезке PQ
меняется линейно, т.е. W
где
,
Для определения интенсивности в точках P и Q снова применяется линейная интерполяция (отсюда термин билинейная). Считаем, что вдоль каждого из ребер границы интенсивность меняется линейно. Тогда интенсивность в точках P и Q:
,
Метод Гуро обеспечивает непрерывное изменение интенсивности при переходе от одной грани к другой. Еще одно преимущество рисование грани как набора горизонталей, что хорошо вписывается в аппаратуру. Интенсивность последующего пиксела отрезка отличается от интенсивности предыдущего на величину, постоянную для данного отрезка. При переходе от отрезка к отрезку интенсивности на концах также меняются линейно. Тем не менее, метод не обеспечивает достаточно гладкое изменение интенсивности.