АННОТАЦИЯ 2
ВВЕДЕНИЕ 8
1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ 10
1.1. ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ 10
1.2. ОБЗОР АНАЛОГОВ 12
1.3. РАЗРАБОТКА НОВОГО РЕШЕНИЯ 15
2. ПЛАНИРОВАНИЕ 17
2.1. ОСНОВНЫЕ ТРЕБОВАНИЯ 17
2.2. ПЛАТФОРМА 18
2.3. АНАЛИЗ И ВЫБОР СРЕДСТВ РАЗРАБОТКИ 19
2.4. АНАЛИЗ И ВЫБОР ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ .... 21
3. ПРОЕКТИРОВАНИЕ 22
4. РЕАЛИЗАЦИЯ 29
4.1. АЛГОРИТМЫ УДАЛЕНИЯ НЕВИДИМЫХ ЛИНИЙ 32
4.1.1 Тест видимости 34
4.1.2 Алгоритм Робертса 40
4.1.3 Алгоритм Аппеля 49
4.1.4 Алгоритм Z-буфера 55
4.2. РЕАЛИЗАЦИЯ ГРАФИЧЕСКОГО ИНТЕРФЕЙСА 65
5. ТЕСТИРОВАНИЕ 76
6. ЗАКЛЮЧЕНИЕ 77
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 79
Компьютерная графика является одной из основных областей информационных технологий, которая включает в себя различные аспекты формирования изображений на компьютере. Конечным результатом применения средств компьютерной графики является изображение различного вида и назначения - от простых чертежей до реалистических образов естественных объектов. Такое разнообразие обосновано в первую очередь тем, что эти изображения используются практически в каждой научной или инженерной дисциплине, где важны наглядность восприятия информации.
Знание основ того, каким образом строится изображение на компьютере, необходимо каждому специалисту, связанному с IT-сферой. Это позволяет осуществлять разработку, осваивать современные графические системы. Поэтому изучение основ компьютерной графики является обязательным компонентом учебных программ по информационным направлениям.
В то же время современная компьютерная графика - сложная и разнообразная научно-техническая дисциплина. Большинство алгоритмов компьютерной графики к настоящему времени имеют под собой достаточно подробную теоретическую основу с использованием математического аппарата. Это, наряду с отсутствием достаточного количества примеров демонстрации применения, делает их затруднительными в изучении для большинства студентов. Так как одним из методов повышения эффективности обучения является наглядность, имеет смысл визуализировать работу отдельных алгоритмов с помощью технологий компьютерного моделирования.
В настоящее время нет единого комплекса примеров демонстрации алгоритмов, существуют лишь отдельные файлы, написанные на различных языках программирования, для разных операционных систем. Данные файлы необходимо искать, скачивать, на это тратится время, причем не гарантируется безопасность файлов, корректность алгоритмов. Также файлы могут оказаться и вовсе неработоспособными.
Этими обстоятельствами обоснована необходимость разработки демонстрационного программного комплекса для изучения алгоритмов представления графической информации.
В рамках дипломной работы охватить все эти алгоритмы невозможно. Поэтому, в соответствии с заданием, будет разработан программный комплекс по методам и алгоритмам удаления невидимых линий и поверхностей. В проект кроме визуализации алгоритмов входит теоретический материал по ним, блок- схемы. Теоретический материал взят из учебно-методического пособия «Методы и средства представления графической информации» автора к.т.н. Ярош Е.С., алгоритмы реализованы по этому же пособию [1].
Целью выпускной квалификационной работы является разработка демонстрационного комплекса программ для изучения следующих алгоритмов загораживания: Робертса, Аппеля, Z-буфера.
Для достижения поставленной цели, необходимо решить следующие задачи:
1. Рассмотреть алгоритмы загораживания, указанные в задании.
2. Сделать обзор существующих аналогов, демонстрирующих работу алгоритмов.
3. Выбрать инструменты для разработки системы.
4. Разработать архитектуру собственного программного комплекса.
5. Выполнить программную реализацию программного комплекса.
6. Оценить работоспособность готового программного комплекса.
В рамках выпускной квалификационной работы было спроектировано и разработано десктоп-приложение «Демонстрационный программный комплекс для изучения алгоритмов загораживания Робертса, Аппеля, Z-буфера».
В ходе выполнения работы решены следующие задачи:
1. Обоснована актуальность разработки.
2. Проведен обзор аналогов.
3. Выбраны инструменты разработки.
4. Спроектирована программная система.
5. Выполнена реализация проекта.
В приложение включены наиболее распространенные алгоритмы загораживания:
- алгоритм Робертса;
- алгоритм Аппеля;
- алгоритм Z-буфера.
Для того, чтобы определить требования к программной системе, была построена модель прецедентов с описанием функционала. По выделенным подсистемам демонстрационного комплекса было проведено описание основных модулей системы, построены диаграммы ее компонентов.
На языке программирования C# было разработано приложение, демонстрирующее применение алгоритмов загораживания, а также произведена интеграция теоретического материала в приложение для более подробного изучения пользователем предметной области. Для работы с графикой использовалась внешняя библиотека OpenTK (OpenGL 4.0). Готовый демонстрационный комплекс позволяет проследить все стадии изменения объекта при применении к нему каждого из алгоритмов.
Предусмотрено задание и сохранение настроек визуализации (положение точки наблюдения, выделение элементов цветом), которые в последующем запуске программы восстанавливаются. При ошибках вычислений обрабатываются исключения, пользователь получает информационное окно с указанием ошибки.
Преимущества разработанного ДПК перед найденными решениями:
- материал структурирован, сопровождается подробным объяснением;
- алгоритмы располагаются в одном месте, что обеспечивает удобство и исключает затраты на поиск;
- предоставление настроек визуализации, а именно ввод исходных данных, изменение скорости визуализации, изменение положения точки наблюдения;
- гарантия работоспособности и безопасности.
Разработка приложения закончена и передана заказчику.
Полный исходный код ДПК представлен в репозитории GitHub [21].
Некоторые перспективы развития: данный продукт можно доработать до универсального учебного пособия по машинной графике, добавив другие темы для изучения (например, закрашивание, отсечение отрезков).