Введение
Выбор билета и формирование заданий
Порядок проведения работы
Введение
Экзамен подготовлен для курса 2D/3D преобразования, составленного из следующих тем:
- 2D графика на основе WinApi C++
- 3D графика на основе WinApi C++
- 3D графика на основе OpenGL WinApi C++
- Имитация полета крылатой ракеты на OpenGL WinApi C++
- Определение ориентации 3D объекта по изображению
- 3D-реконструкция по двум изображениям
- Матрицы поворота, углы Эйлера и кватернионы
Выбор билета и формирование заданий
Студент или преподаватель выбирает билет случайным образом (random) :
По номеру выбранного билета на основе данных из таблицы 1 формируются 3 задания — 2 теоретических вопроса и одна практическая задача. Например:
- Структура оконного WinAPI С++ приложения.
- Матрица зеркального отображения относительно плоскости XY.
- Модифицировать шаблон WinAPI С++ приложения (с OpenGL) под создание проекции рупорной антенны на плоскость XY по заданным параметрам ее положения.
Все 30 билетов можно открыть по ссылке.
Табл.1 Данные для формирования 3-х заданий
Для выполнения 3-го задания используется шаблон WinAPI С++ приложения или шаблон WinAPI С++ приложения с подключением OpenGL — в соответствии с выбранным номером билета.
Параметры положения антенны
Вопросы к заданиям 1 и 2
- Структура оконного WinAPI С++ приложения.
- Задачи, которые выполняет функция WinMain в WinAPI С++ приложении.
- Задачи, которые выполняет оконная функция в WinAPI С++ приложении.
- Каким образом обеспечивается подключение оконной функции?
- Специфика обработки сообщений в WinAPI С++ приложении?
- Каким образом можно облегчить чтение и модификацию приложения?
- Какой объект обеспечивает рисование в WinAPI С++ приложении?
- Зачем для рисования используются два контекста устройства?
- Где начало координат и какое направление осей оконной СК?
- Где в WinAPI приложении вызывается функция рисования?
- Основные свойства, которые сохраняются для различных видов преобразований.
- Чем отличается декартова СК от аффинной СК?
- Уравнения преобразований поворота на плоскости.
- Уравнения преобразований движения на плоскости.
- Запись преобразований движения через однородные координаты
- Основные элементарные преобразования движения в плоскости.
- Зеркальное отображения относительно оси X на плоскости
- Зеркальное отображение относительно оси Y на плоскости
- Равноценны ли преобразования, выраженные через матрицы произведений M1M2 і M2M1?
- Преобразования поворота на плоскости в матричном виде.
- Преобразования движения на плоскости в матричном виде.
- Матрица поворота вокруг оси X.
- Матрица поворота вокруг оси Y.
- Матрица поворота вокруг оси Z.
- Матрица перемещения вдоль оси X в пространстве.
- Матрица перемещения вдоль оси Y в пространстве.
- Матрица перемещения вдоль оси Z в пространстве.
- Матрица масштабирования вдоль оси X в пространстве.
- Матрица масштабирования вдоль оси Y в пространстве.
- Матрица масштабирования вдоль оси Z .
- Матрица зеркального отображения относительно плоскости XY.
- Матрица зеркального отображения относительно плоскости XZ.
- Матрица зеркального отображения относительно плоскости YZ.
- Виды проекций.
- Способы построения ортогональной проекции.
- Матрица ортогональной проекции.
- Матрица центральной проекции.
- Чем отличается матрица ортогональной проекции от матрицы центральной проекции?
- Можно ли матрицей центральной проекции задать ортогональную проекцию?
- Как определяется положение одной СК относительно другой через матрицы?
- Как определяется матрица положения объекта в новой СК?
- Подключение OpenGL к WinAPI С++ приложению.
- Как определяется примитивы OpenGL?
- Примитивы GL_LINE_LOOP и GL_LINES.
- Примитивы GL_QUADS и GL_TRIANGLE_STRIP.
- Примитивы для поверхностной и проволочной моделей.
- Функции для работы со списками в OpenGL
- OpenGL — машина состояния. Что это значит?
- Функции glPushMatrix() и glPopMatrix()
- Функция glTranlsate и ее параметры.
- Функция glRotate и ее параметры.
- Функция glScale и ее параметры.
- В OpenGL относительно какой СК происходит следующее преобразование — текущей или глобальной?
- Как в OpenGL сохранить и восстановить СК?
- Функция gluLookAt и ее параметры
- Как отсекаются объекты в OpenGL?
- Функция gluPerspective и ее параметры.
- Функция glOrtho и ее параметры.
- Матрицы поворота и углы Эйлера.
- Axis Angle представление вращения.
Порядок выполнения работы
Перед началом ZOOM-конференции преподаватель включает запись с целью контроля за проведением экзамена.
Экзамен проводится со студентами, разделенными по группам не более чем из 8 человек. Деление на группы обусловлено тем, чтобы можно было наблюдать через окна на экране за самостоятельностью выполнения работы каждым студентом.
По окончании работы каждый из студентов составляет Word- отчет по экзамену, который отправляется преподавателю на электронную почту.
Пример Word- отчета по экзамену
Экзамен по дисциплине «Компьютерная графика и геометрическое моделирование».
Студент Конопко В.С., Гр. КН-19-1. Билет №1
Задания:
- Структура оконного WinAPI С++ приложения.
- Матрица зеркального отображения относительно плоскости XY.
- Модифицировать шаблон WinAPI С++ приложения (с OpenGL) под создание проекции рупорной антенны на плоскость XY по заданным параметрам ее положения: p= 0.15; h=0.95; alpha=15; beta=45; gamma=75.
Выполнение заданий:
Задание 1
WinAPI приложение является в своей основе процедурным приложением и содержит два основных модуля – функции WinMain и WndProc.
Функция WinMain составляет основу любого WinAPI приложения. Она служит как бы точкой входа в приложение и отвечает за следующее:
- начальную инициализацию приложения;
- создание и регистрацию объекта класса окна приложения;
- создание и инициализацию цикла обработки событий.
Обработанное в бесконечном цикле событие переправляется (опосредовано через Windows) оконной функции WndProc. События в ней идентифицируются именем константы (WM_PAINT, WM_DESTROY и др.). Рисование осуществляется при помощи объектов типа HDC (дескриптор контекста устройства).
Задание 2
// 1 0 0 0 // // o 1 0 0 // // 0 0 -1 0 // // 0 0 0 1 //
Задание 3
Автор: Николай Свирневский