Изучение учебного пакета программ компьютерной графики
СПИСОК ФАЙЛОВ, ВХОДЯЩИХ В УЧЕБНЫЙ ПАКЕТ
Учебный пакет программ по компьютерной графике содержит программы-образцы для всех работ и включает в себя две директории:
CUBE - для решения задач построения и изменения размеров куба,
TETR - для решения задач построения и изменения размеров тетраэдра; каждая из директорий содержит две поддиректории:
SOURCES - содержит файлы с расширением.CPP,
EXE - содержит файлы с расширением.EXE.
Имя файла | Поддиректория | Выполняемые действия |
CUBE\SOURCES | ПОСТРОЕНИЕ И ИЗМЕНЕНИЯ КУБА | |
C_GRAN.CPP | удаление невидимых граней и закраска | |
C_MAS.CPP,C_MAS1.CPP | масштабирование в двух режимах | |
CUBE1.CPP | вращение в трехмерном пространстве | |
CUBE2.CPP | перемещение в картинной плоскости | |
CUBE3.CPP | самостоятельное вращение в картинной плоскости | |
TETR\SOURCES | ПОСТРОЕНИЕ И ИЗМЕНЕНИЯ ТЕТРАЭДРА | |
T_GRAN.CPP | удаление невидимых граней и закраска | |
T_MAS.CPP,T_MAS1.CPP | масштабирование в двух режимах | |
TETR1.CPP | вращение в трехмерном пространстве | |
TETR2.CPP | перемещение в картинной плоскости | |
TETR3.CPP | самостоятельное вращение в картинной плоскости |
1. Богданов С.О. Представление графической информации в вычислительной технике. МАИ, каф. 304, в файлах Богданов 1.doc, Богданов 2.doc, Богданов 3.doc, Богданов 4.doc.
ЗАДАНИЕ
1.Вызвать из учебного пакета две программы, просмотреть их выполнение и проанализировать влияние программы и ее отдельных частей на результаты функционирования.
2. Ознакомиться с разделом учебного пособия [1] и подготовиться к ответу на вопросы.
ВАРИАНТЫЗАДАНИЙ
Вариант | объект | файлы | Глава уч пособия |
тетраэдр | T_MAS, T_MAS1 | кодирование цвета | |
тетраэдр | TETR1, TETR2 | сжатие изображений | |
тетраэдр | TETR2, TETR3 | форматы растровых файлов | |
тетраэдр | TETR2, T_MAS | векторные изображения | |
куб | CUBE1, CUBE2 | форматы растровых файлов | |
куб | C_MAS, C_MAS1 | сжатие изображений | |
куб | CUBE3, CUBE2 | векторные изображения | |
куб | CUBE3, C_MAS1 | кодирование цвета |
Лабораторная работа № 2
ПАРАЛЛЕЛЬНЫЙ ПЕРЕНОС И МАСШТАБИРОВАНИЕ ОБЪЕКТОВ
Цель работы. Ознакомиться с основными алгоритмами масштабирования и параллельного переноса изображений прозрачных пространственных фигур.
Задание
1. Ознакомиться с текстом программы-образца.
2. Преобразовать программу-образец в соответствии с полученным вариантом задания. Объектом преобразования является фигура, построенная в лабораторной работе № 1.
3. Отладить получившуюся программу на компьютере.
4. Лабораторная работа считается полностью выполненной и готовой к сдаче, если может быть продемонстрирована полностью соответствующая заданию работа программы, а также предоставлен ее листинг.
Варианты задания
К описанию лабораторной работы прилагаются четыре программы-образца. Первые две программы в качестве объекта преобразования используют куб, другие две – тетраэдр. Для каждого из этих тел одна программа реализует параллельный перенос вдоль горизонтальной и вертикальной осей, вторая – масштабирует объект, причем масштабирование происходит с увеличением объекта и смещением из верхнего левого угла экрана к правому нижнему.
Вариант А. Масштабирование с уменьшением. Начальный объект находится в нижней правой части экрана, смещение происходит влево вверх. Размер начального объекта и коэффициент уменьшения произвольные.
Вариант Б. Масштабирование с увеличением. Начальный объект находится в нижней левой части экрана, смещение происходит вправо вверх. Размер начального объекта и коэффициент увеличения произвольные.
Вариант В. Параллельный перенос объекта в четырех направлениях по диагонали с одновременным увеличением. Начальное положение объекта – в центре экрана. Размер объекта и коэффициент увеличения произвольные.
Вариант Г. Смещение объекта в четырех направлениях по горизонтали и вертикали с одновременным уменьшением. Начальное положение объекта – в центре экрана. С удалением от начальной позиции объект должен уменьшаться, а при обратном движении увеличиваться. Начальный размер объекта и закон, по которому будут уменьшаться размеры объекта (линейный, квадратичный, логарифмический и т. д.), выбираются студентом.
Вариант | Объект-образец | Действие | Вариант | Программа- образец |
куб | Масштабирование | А | c_mas.cpp | |
куб | Масштабирование | Б | c_mas.cpp | |
куб | Параллельный перенос | В | cube2.cpp | |
куб | Параллельный перенос | Г | cube2.cpp | |
тетраэдр | Масштабирование | А | t_mas.cpp | |
тетраэдр | Масштабирование | Б | t_mas.cpp | |
тетраэдр | Параллельный перенос | В | tetr2.cpp | |
тетраэдр | Параллельный перенос | Г | tetr2.cpp |
Лабораторная работа № 3
ВРАЩЕНИЕ ТРЕХМЕРНЫХ ОБЪЕКТОВ
Цель работы. Ознакомиться с основными алгоритмами вращения изображений прозрачных пространственных фигур.
Задание
1. Ознакомиться с текстом программы-образца. Программа-образец содержит логическую ошибку: для вычисления координат точек используется итерационный процесс. В результате накапливается ошибка округления, и объект деформируется. Необходимо объяснить, как исправить эту ошибку.
2. Преобразовать программу-образец в соответствии с полученным вариантом задания. Объектом преобразования является пространственная фигура, построенная в лабораторной работе № 1. Отладить получившуюся программу на компьютере.
3. К вращению вокруг любой из координатных осей (переключение по клавишам сдвига) добавляется дополнительное действие, выполняемое при нажатии выбранной студентом клавиши. Количество построений дополнительных действий соответствует варианту.
4. Параметры дополнительных действий, не указанные в задании выбираются студентом.
5. Лабораторная работа считается полностью выполненной и готовой к сдаче, если может быть продемонстрирована полностью соответствующая заданию работа программы, а также предоставлен ее листинг на бумаге.
Варианты задания
Бригада | Объект- образец | Дополнительное действие | Программа-образец |
тетраэдр | сдвиг вправо и останов после 3-го нажатия той же клавиши | tetr3.cpp | |
тетраэдр | сдвиг вниз и останов после 4-го нажатия той же клавиши | tetr2.cpp | |
тетраэдр | уменьшение и останов после 3-го нажатия той же клавиши | tetr2.cpp | |
тетраэдр | увеличение и останов после 4-го нажатия той же клавиши | tetr3.cpp | |
куб | сдвиг вправо и останов после 3-го нажатия той же клавиши | cube3.cpp | |
куб | сдвиг вниз и останов после 4-го нажатия той же клавиши | cube3.cpp | |
куб | уменьшение и останов после 4-го нажатия той же клавиши | cube3.cpp | |
куб | увеличение и останов после 3-го нажатия той же клавиши | cube2.cpp |
Лабораторная работа № 4
ПОСТРОЕНИЕ НЕПРОЗРАЧНЫХ ТРЕХМЕРНЫХ ОБЪЕКТОВ
Цель работы. Ознакомиться с основными алгоритмами удаления невидимых ребер и закраски граней.
Задание
1. Исходная пространственная фигура, созданная в работе №1, должна быть преобразована в непрозрачную. При этом должны быть два варианта расположения невидимых ребер с возможностью выбора варианта с клавиатуры. Сначала невидимые ребра должны быть изображены пунктирными линиями, затем по нажатию выбранной студентом клавиши грани фигуры закрашиваются или заштриховываются с удалением невидимых ребер.
2. Алгоритм преобразования и удаления невидимых ребер выбирается студентом.
3. По выбору преподавателя может быть выбрана для преобразования пространственная фигура из таблицы вариантов к данной работе или из лабораторной работы № 1. Отладить программу на компьютере.
Варианты задания
Бригада | Объект- образец | Дополнительная информация | Программа-образец |
Пирамида с квадратом в основании | Высота больше стороны основания в 2 раза | t_gran.cpp | |
Призма с квадратом в основании | Высота меньше стороны основания в 2 раза | c_gran.cpp | |
Пирамида с треуголь-ником в основании | Высота больше стороны основания в 3 раза | t_gran.cpp | |
Призма с треугольни-ком в основании | Высота меньше стороны основания в 2,5 раза | c_gran.cpp | |
Пирамида с прямоуголь-ником в основании | Высота больше стороны основания в 2,5 раза | t_gran.cpp | |
Призма с прямоуголь- ником в основании | Высота больше стороны основания в 3 раза | c_gran.cpp |
Пирамида с квадратом в основании | Высота меньше стороны основания в 3 раза | t_gran.cpp | |
Призма с треугольником в основании | Высота больше стороны основания в 3 раза | c_gran.cpp |
Лабораторная работа № 5