Матрица проецирования.
Для корректного выполнения операций проецирования используется матрица проецирования. Текущую матрицу проецирования можно установить с помощью команды:
glMatrixMode(GL_PROJECTION);
После выполнения этой команды следует установить матрицу проецирования в единичную с помощью команды glLoadIdentity.
Как правило, параметры вида помещаются в обработчике изменения размеров окна, стартовые сдвиги и повороты обычно располагаются здесь же, а код воспроизведения сцены заключается между командами glPushMatrix и glPopMatrix. Иногда поступают иначе: код воспроизведения начинается с glLoadIdentity, а далее идут стартовые трансформации и собственно код сцены.
Задания к лабораторной работе.
Задание 1. Постройте изображения трех плоских фигур в пространстве (в соответствии с вариантом). Оцените полученный результат: правильно ли изображены фигуры, если нет - объясните почему.
Задание 2. Установите режим проверки буфера глубины в программе к заданию 1. Сравните полученный результат с предыдущим.
Задание 3. Установите видовые параметры в соответствии с вариантом и параллельную проекцию; постройте изображение куба с координатами вершин, равными по модулю 1 (куб изображается с помощью 6 квадратов). Оцените результат.
Задание 4. Установите перспективную проекцию и постройте каркасное изображение куба
Задание 5. Поверните оси координат в соответствии с вариантом и постройте изображение куба. Оцените результат. Почему части куба отсечены? Измените видовые параметры таким образом, чтобы куб изображался без отсечений. Измените код программы таким образом, чтобы каждая грань куба изображалась своим цветом.
Задание 6. Напишите программу, в которой изображение куба изменяется при нажатии клавиш (в соответствии с вариантом).
Варианты заданий.
Вариант 1
|
Фигуры
(заданы вершинами)
|
Параметры вида
|
Поворот осей
|
К заданию 6
|
Треугольник:
(0, 0.3, 0.2) (0.3, 0.3, 0) (0, 0, 0.7)
Квадрат:
(-0.5, 0.5, 0.3) (-0.5, -0.5, 0.3)
(0.5, -0.5, 0.3) (0.5, 0.5, 0.3)
Треугольник:
(0, 0, 0.3) (0.4, 0, 0.5) (-0.5, 05, -1)
|
-0.7, 0.7
-0.85, 0.85
3, 10
|
Вокруг OX:
Вокруг OY:
|
Изменяется способ изображения: каркасное или заливка цветом
| Вариант 2
|
Фигуры
(заданы вершинами)
|
Параметры вида
|
Поворот осей
|
К заданию 6
|
Четырехугольник:
(-0.5, -0.5, -0.5) (-0.5, 0.5, -0.5)
(0.8, 0.5, -0.5) (0.5, -0.8, -0.5)
Треугольник:
(-1, -1, 1) (-1, 1, 1) (1, 0, -1);
Треугольник:
(-0.7, -0.7, -0.7) (0, 0, 0) (0, 0, 1)
|
-0.9, 0.8
-0.8, 0.9
5, 10
|
Вокруг OX:
Вокруг OY:
|
Изменяется масштаб: увеличение или уменьшение объекта
| Вариант 3
|
Фигуры
(заданы вершинами)
|
Параметры вида
|
Поворот осей
|
К заданию 6
|
Треугольник:
(1, 1, 0) (1, 0, 1) (0, 1, 1)
Четырехугольник:
(0.8, 0.7, 1) (-0.8, 0.7, 1)
(-0.8, -0.7, -0.8) (0.8, -0.7, -0.8)
Треугольник:
(0, 0.5, -0.5) (-0.5, 0, -0.5) (0.5, 0, 0.5)
|
-0.85, 0.85
-0.7, 0.7
6, 12
|
Вокруг OX:
-25
Вокруг OY:
|
Куб поворачивается при нажатии на некоторую клавишу на заданный угол
| Вариант 4
|
Фигуры
(заданы вершинами)
|
Параметры вида
|
Поворот осей
|
К заданию 6
|
Треугольник:
(1, 1, 1) (-1, 0, -1) (1, -1, 1)
Треугольник:
(-0.7, -0.7, 0) (-0.7, 0.7, 0) (0.7, 0, 0)
Треугольник:
(0, 0, -0.9) (-1, -0.8, 0.5) (1, 1, 1)
|
-0.8, 0.8
-0.9, 0.9
3, 8
|
Вокруг OX:
-15
Вокруг OY:
|
Куб перемещается: удаление или приближение
| Вариант 5
|
Фигуры
(заданы вершинами)
|
Параметры вида
|
Поворот осей
|
К заданию 6
|
Квадрат:
(-0.6, -0.6, -0.2) (0.6, -0.6, -0.2)
(0.6, 0.6, -0.2) (-0.6, 0.6, -0.2)
Квадрат:
(-0.5, 0.8, -0.8) (-0.5, 0.8, 0.8)
(-0.5, -0.8, 0.8) (-0.5, -0.8, -0.8)
Треугольник:
(-1, -1, 0) (0, 1, 1) (1, 0, 0)
|
-1, 0.9
0.9, 1
2, 9
|
Вокруг OX:
Вокруг OY:
|
Изменяется способ проецирования: прямая или перспективная проекции
|
Дополнительные задания.
- Напишите программу для построения тетраэдра в выбранной проекции, пользуясь командой рисования ленты треугольников. Реализуйте изображение тетраэдра а) каркасно; б) с заливкой так, чтобы лицевые грани изображались красным цветом, а обратные – синим.
- Изобразите октаэдр. Реализуйте вращение октаэдра относительно его центра симметрии.
- Изобразите трехмерную лестницу, пользуясь операцией сдвига.
- Изобразите винтовую лестницу.
Контрольные вопросы.
- Для чего применяется буфер глубины?
- Каким образом выводятся фигуры при отключенном тесте глубины?
- Какие способы проецирования существуют?
- Чем отличаются различные способы проецирования?
- Какой способ проецирования целесообразно использовать для построения реалистичных изображений?
- Какой способ проецирования удобен при построении чертежей?
- Что такое видовые параметры и как они применяются?
- С какой целью в командах, устанавливающих видовые параметры, используются плоскости отсечения?
Лабораторная работа № 5. Квадрик-объекты. Камера.
Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...
|
Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...
|
Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...
|
Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...
|
Сравнительно-исторический метод в языкознании сравнительно-исторический метод в языкознании является одним из основных и представляет собой совокупность приёмов...
Концептуальные модели труда учителя В отечественной литературе существует несколько подходов к пониманию профессиональной деятельности учителя, которые, дополняя друг друга, расширяют психологическое представление об эффективности профессионального труда учителя...
Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...
|
Приготовление дезинфицирующего рабочего раствора хлорамина Задача: рассчитать необходимое количество порошка хлорамина для приготовления 5-ти литров 3% раствора...
Дезинфекция предметов ухода, инструментов однократного и многократного использования
Дезинфекция изделий медицинского назначения проводится с целью уничтожения патогенных и условно-патогенных микроорганизмов - вирусов (в т...
Машины и механизмы для нарезки овощей В зависимости от назначения овощерезательные машины подразделяются на две группы: машины для нарезки сырых и вареных овощей...
|
|