Библиотека рисует не во всей активной странице и не в ее рабочей области, а в области просмотра на ней, которая реализована в виде прямоугольника, задаваемого функцией gl Vi ewPort (i nt x, int у. int W. int H). При определении области просмотра считается, что на поверхности рисования задано начало координат, которое находится в левом нижнем углу рабочей области, а оси направлены вверх

Инициализация библиотек и вывод примитивов

и вправо. Функция glViewPort(x. у, W. Н) отображает точку (-1.0,-1.0) канонического квадрата в точку рабочей области с координатами (х, у), а точку (1.0,1.0) - в точку с координатами (х + W, у + Я).

Изображение в окне приложения получается после полного формирования картинки копированием рабочей области окна из поверхности рисования в первичную поверхность.

Если заданы отрицательные координаты угла области просмотра или размеры (W, Н) больше размеров рабочей области активной страницы, то изображение будет отсекаться по границам рабочей области. Таким образом, название «область просмотра» ближе к буквальному переводу, но поскольку библиотека рисует в этой области, но показывает в окне только ее часть, название «область вывода» точнее отражает происходящие процессы.

Координаты точек канонического квадрата превращаются в экранные координаты умножением на постоянный коэффициент и сдвигом. По умолчанию параметры х, у, W и Н заданы так, что канонический квадрат отображается на все окно. Так, точка с координатами (-1,-1,2) рисуется в нижнем левом углу рабочей области, а точка с координатами (1, 1, z) рисуется в правом верхнем углу рабочей области.

В зависимости от решаемых графической системой задач, при перемещении пользователем окна по экрану возможны два подхода к формированию изображения. В первом варианте изменяется отображаемая часть проекционной плоскости, а размеры элементов изображения не меняются. То есть имитируется перемещение окна над неподвижным рисунком или (при изменении размеров окна) отодвигание шторки. Этот вариант можно назвать режимом шторки. Во втором варианте отображаемая часть проекционной плоскости не изменяется. Картинка растягивается или сжимается по размерам окна, а перемещение окна не влияет на изображение в окне. Назовем это режимом линзы.


⇐ Предыдущая| |Следующая ⇒