В табл. 5.1 собраны функции геометрических преобразований и процедуры работы с матрицами OpenGL, рассмотренные в данной главе. Кроме того, в таблице ^приведено несколько функций, связанных с обсуждавшимися темами.
ЛИТЕРАТУРА
Дополнительные технологии работы с матрицами и геометрическими преобразованиями рассмотрены в сборниках [8, 122, 151, 176, 244]. Однородные координаты в компьютерной графике обсуждаются в статьях [29, 33-35].
Примеры программирования с использованием функций геометрических преобразований OpenGL разбираются в книге [400]. Примеры программирования функций геометрических преобразований под OpenGL также можно найти на Web-сайте Нейта Робинса (Nate Robins): http://www.cs.utah.edu/narobins/opengl.html. Наконец, полный перечень функций геометрических преобразований OpenGL приводится в справочнике [320].
ТАБЛИЦА 5.1.Резюме по функциям геометрических преобразований в OpenGL
Функция |
Описание |
glTranslate* |
Задает параметры трансляции |
glRotate* |
Определяет параметры поворота вокруг любой оси, проходящей через начало координат |
glScale* |
Задает параметры масштабирования относительно начала координат |
glMatrixMode |
Формирует текущую матрицу преобразований геометрического наблюдения, проектирования, наложения текста или изменения цвета |
glLoadldentity |
Текущая матрица становится единичной |
glLoadMatrix* |
Задает элементы текущей матрицы |
glMultMatrix* |
Множит справа текущую матрицу на заданную матрицу |
glGetlntegerv |
Возвращает максимальную глубину стека или текущее число матриц в стеке для заданного режима |
glPushMatrix |
Копирует верхнюю матрицу стека и записывает копию во второй позиции стека |
glPopMatrix |
Удаляет верхнюю матрицу стека и помещает вторую матрицу в верх стека |
glPixelZoom |
Задает двухмерные параметры масштабирования для растровых операций |
ГЛАВА 6
Двухмерное наблюдение
главе 2 кратко рассматривались концепции и функции двухмерного наблюдения. В данной главе мы более подробно опишем процедуры вывода на экран проекции двухмерного изображения. Обычно графический пакет позволяет пользователю задавать, какую часть определенной картины нужно отобразить на экран, и где эта часть должна располагаться на дисплее. Чтобы определить изображение, можно использовать любую удобную декартову систему координат, называемую внешней. Для двухмерного изображения проекция выбирается следующим образом: задается область плоскости ху, которая содержит все изображение или его часть. Пользователь может выбирать одну область для вывода на экран, кроме того, может одновременно изображаться несколько областей или анимированные панорамы сцены. Затем части изображения в выбранных областях отображаются в области, заданные в координатах устройства. Если выбрано несколько областей наблюдения, их можно поместить в различных местах дисплея либо ввести фрагменты в большие участки. Двухмерное преобразование наблюдения из внешних координат в координаты устройства включает трансляцию, вращение и масштабирование, а также удаление тех частей изображения, которые лежат вне границ выбранной области сцены.
ДВУХМЕРНЫЙ КОНВЕЙЕР НАБЛЮДЕНИЯ
Участок двухмерной сцены, выбранный для отображения на экране, называется отсекающим окном, поскольку все части сцены вне выбранного участка, “отсекаются”, и на экран выводится только часть сцены, которая находится внутри отсекающего окна. Иногда отсекающее окно называется окном наблюдения или смотровым окном.