Преобразования координат и проекции
Преобразования координат и проекции
В OpenGL используются как основные три системы координат: левосторонняя, правосторонняя и оконная. Первые две системы являются трехмерными и отличаются друг от друга направлением оси z: в правосторонней она направлена на наблюдателя, а в левосторонней - в глубь экрана. Расположение осей x и y аналогично описанному выше. Левосторонняя система используется для задания значений параметрам команды gluPerspective(), glOrtho(), которые будут рассмотрены ниже, а правосторонняя или мировая система координат во всех остальных случаях. Отображение трехмерной информации происходит в двумерную оконную систему координат.
Для задания различных преобразований объектов сцены в OpenGL используются операции над матрицами, при этом различают три типа матриц: видовая, проекций и текстуры. Все они имеют размер 4?4. Видовая матрица определяет преобразования объекта в мировых координатах, такие как параллельный перенос, изменение масштаба и поворот. Матрица проекций задает как будут проецироваться трехмерные объекты на плоскость экрана (в оконные координаты), а матрица текстуры определяет наложение текстуры на объект.
Для того, чтобы выбрать, какую матрицу надо изменить, используется команда
void glMatrixMode(GLenum mode)
вызов которой со значением параметра mode равным GL_MODELVIEW, GL_PROJECTION, GL_TEXTURE включает режим работы с видовой, проекций и матрицей текстуры соответственно. Для вызова команд, задающих матрицы того или иного типа необходимо сначала установить соответствующий режим.
Для определения элементов матрицы текущего типа вызывается команда
void glLoadMatrix[f d](GLtype *m)
где m указывает на массив из 16 элементов типа float или double в соответствии с названием команды, при этом сначала в нем должен быть записан первый столбец матрицы, затем второй, третий и четвертый.
Команда
void glLoadIdentity(void)
заменяет текущую матрицу на единичную. Часто нужно сохранить содержимое текущей матрицы для дальнейшего использования, для чего используют команды
void glPushMatrix(void)
void glPopMatrix(void)
Они записывают и восстанавливают текущую матрицу из стека, причем для каждого типа матриц стек свой. Для видовых матриц его глубина равна как минимум 32, а для двух оставшихся типов как минимум 2.
Для умножения текущей матрицы слева на другую матрицу используется команда
void glMultMatrix[f d](GLtype *m)
где m должен задавать матрицу размером 4x4 в виде массива с описанным расположением данных. Однако обычно для изменения матрицы того или иного типа удобно использовать специальные команды, которые по значениям своих параметров создают нужную матрицу и перемножают ее с текущей. Чтобы сделать текущей созданную матрицу, надо перед вызовом этой команды вызвать glLoadIdentity().
В целом, для отображения трехмерных объектов сцены в окно приложения используется следующая последовательность действий:
Координаты объекта ? Видовые координаты ? Усеченные координаты ? Нормализованные координаты ? Оконные координаты
Рассмотрим каждое из этих преобразований отдельно.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Преобразования системы координат
Преобразования системы координат Преобразования — это различные действия (изменение масштаба, поворот и перемещение точки начала координат), которые мы можем выполнить над системой координат канвы.При выполнении преобразования изменяется только система координат
Преобразования системы координат
Преобразования системы координат Преобразования — это различные действия (изменение масштаба, поворот и перемещение точки начала координат), которые мы можем выполнить над системой координат канвы.При выполнении преобразования изменяется только система координат
Ввод координат
Ввод координат Когда программа AutoCAD запрашивает точку, команда ожидает ввода координат какой-либо точки текущего рисунка. В AutoCAD может быть включен контроль лимитов рисунка, осуществляемый командой LIMITS. В этом случае, если введенная точка выходит за пределы рисунка, AutoCAD
Проекции
Проекции В OpenGL существуют ортографическая (параллельная) и перспективная проекция. Первый тип проекции может быть задан командамиvoid glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far)void gluOrtho2D(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top)Первая команда создает матрицу проекции в
Типовые проекции
Типовые проекции Использование типовых проекций значительно упрощает просмотр трехмерных объектов. Направление проецирования можно выбрать с помощью команд группы меню Views (Виды) на вкладке View (Отображение) ленты. Программа предлагает выбрать шесть типовых проекций и
Системы координат
Системы координат Перед тем как начать разговор про сложные трансформации, надо рассказать о том, какие системы координат есть в 3ds Max.По умолчанию в 3ds Max включена видовая система координат View (Видовая). Она характеризуется тем, что во всех окнах проекций, кроме
Системы координат GDI+
Системы координат GDI+ Нашей следующей задачей будет рассмотрение координатных систем GDI+. В GDI+ определяются три разные системы координат, которые используются средой выполнения, при определении места размещения и размеров содержимого визуализации. Во-первых, есть так
2. Операция проекции.
2. Операция проекции. Операция проекции на языке структурированных запросов реализуется даже проще, чем операция выборки. Напомним, что при применении операции проекции выбираются не строки (как при применении операции выборки), а столбцы. Поэтому достаточно перечислить
Ввод координат
Ввод координат Когда программа AutoCAD запрашивает точку, команда ожидает ввода координат какой-либо точки текущего рисунка. В AutoCAD может быть включен контроль лимитов рисунка, осуществляемый командой LIMITS. В этом случае, если введенная точка выходит за пределы рисунка, AutoCAD
Динамический ввод координат
Динамический ввод координат С помощью функции динамического ввода значения координат можно вводить не в командной строке, а в поле всплывающей подсказки, которая отображается рядом с курсором и динамически обновляется по мере перемещения курсора. Функция
Пространство координат и преобразования
Пространство координат и преобразования ClientToScreen Функция ClientToScreen преобразует клиентские координаты указанной точки в экранные координаты. BOOL ClientToScreen ( HWND hWnd , // дескриптор окна для исходных координат LPPOINT lpPoint // указатель на структуру, содержащую// экранные координаты );
Ввод координат
Ввод координат Когда программа AutoCAD запрашивает точку, команда ожидает ввода координат какой-либо точки текущего рисунка. В AutoCAD может быть включен контроль лимитов рисунка, осуществляемый командой LIMITS. В этом случае, если введенная точка выходит за пределы рисунка, AutoCAD
Типовые проекции
Типовые проекции Использование типовых проекций значительно упрощает просмотр трехмерных объектов. Направление проецирования можно выбрать с помощью команд в меню View ? 3D Views (Вид ? Трехмерные виды). Программа предлагает выбрать шесть типовых проекций и четыре
Ввод координат
Ввод координат Ввод координат в AutoCAD может осуществляться двумя способами:? непосредственно с клавиатуры, путем указания численных значений;? с использованием графического маркера (курсора), который движется по экрану с помощью устройства указания. Ввод координат
Ввод координат
Ввод координат В процессе построения объектов, как вы уже знаете, на экран выводится табло с указанием текущих параметров объекта – расстояния от начальной точки и относительного угла. Если нажать клавишу /, то вместо них появятся значения координат по осям X и Y. Таким
4.2. Создание трехмерной модели и построение горизонтальной проекции детали
4.2. Создание трехмерной модели и построение горизонтальной проекции детали Правила изображения предметов устанавливает ГОСТ 2.305-68. Изображения предметов должны выполняться по методу прямоугольного проецирования.При этом предмет предполагается расположенным между