Матрица проецирования.
Для корректного выполнения операций проецирования используется матрица проецирования. Текущую матрицу проецирования можно установить с помощью команды:
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. Квадрик-объекты. Камера.
Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...
|
ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при которых тело находится под действием заданной системы сил...
|
Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...
|
Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...
|
Особенности массовой коммуникации Развитие средств связи и информации привело к возникновению явления массовой коммуникации...
Тема: Изучение приспособленности организмов к среде обитания Цель:выяснить механизм образования приспособлений к среде обитания и их относительный характер, сделать вывод о том, что приспособленность – результат действия естественного отбора...
Тема: Изучение фенотипов местных сортов растений Цель: расширить знания о задачах современной селекции. Оборудование:пакетики семян различных сортов томатов...
|
Билет №7 (1 вопрос) Язык как средство общения и форма существования национальной культуры. Русский литературный язык как нормированная и обработанная форма общенародного языка Важнейшая функция языка - коммуникативная функция, т.е. функция общения Язык представлен в двух своих разновидностях...
Патристика и схоластика как этап в средневековой философии Основной задачей теологии является толкование Священного писания, доказательство существования Бога и формулировка догматов Церкви...
Основные симптомы при заболеваниях органов кровообращения При болезнях органов кровообращения больные могут предъявлять различные жалобы: боли в области сердца и за грудиной, одышка, сердцебиение, перебои в сердце, удушье, отеки, цианоз головная боль, увеличение печени, слабость...
|
|