📄Работа №206466

Тема: Разработка демонстрационного комплекса для алгоритмов загораживания Робертса, Аппеля, Z-буфера

Характеристики работы

Тип работы Дипломные работы, ВКР
Программирование
Предмет Программирование
📄
Объем: 81 листов
📅
Год: 2020
👁️
Просмотров: 49
Не подходит эта работа?
Закажите новую по вашим требованиям
Узнать цену на написание
ℹ️ Настоящий учебно-методический информационный материал размещён в ознакомительных и исследовательских целях и представляет собой пример учебного исследования. Не является готовым научным трудом и требует самостоятельной переработки.

📋 Содержание

АННОТАЦИЯ 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

📖 Аннотация

В данной работе спроектирован и реализован демонстрационный программный комплекс для изучения ключевых алгоритмов удаления невидимых линий и поверхностей: алгоритмов Робертса, Аппеля и Z-буфера. Актуальность исследования обусловлена сложностью освоения математического аппарата компьютерной графики и дефицитом наглядных интерактивных инструментов, способных визуализировать пошаговое выполнение этих алгоритмов, что является важной задачей в образовательном процессе. Основным результатом стало десктоп-приложение на C# с использованием библиотеки OpenTK (OpenGL 4.0), которое не только демонстрирует работу каждого алгоритма на трехмерных объектах, но и интегрирует теоретический материал, позволяя пользователю управлять параметрами сцены, сохранять настройки и детально отслеживать все стадии визуализации. Научная значимость заключается в систематизации и программной реализации классических методов загораживания, а практическая — в создании эффективного учебного пособия для студентов IT-специальностей. Разработка опирается на теоретические основы, изложенные в трудах Е.С. Ярош по методам представления графической информации, А.И. Митина по компьютерной графике, а также на интернет-ресурсы, посвященные конкретным алгоритмам, такие как материалы с портала compgraph.tpu.ru.

📖 Введение

Компьютерная графика является одной из основных областей информационных технологий, которая включает в себя различные аспекты формирования изображений на компьютере. Конечным результатом применения средств компьютерной графики является изображение различного вида и назначения - от простых чертежей до реалистических образов естественных объектов. Такое разнообразие обосновано в первую очередь тем, что эти изображения используются практически в каждой научной или инженерной дисциплине, где важны наглядность восприятия информации.
Знание основ того, каким образом строится изображение на компьютере, необходимо каждому специалисту, связанному с IT-сферой. Это позволяет осуществлять разработку, осваивать современные графические системы. Поэтому изучение основ компьютерной графики является обязательным компонентом учебных программ по информационным направлениям.
В то же время современная компьютерная графика - сложная и разнообразная научно-техническая дисциплина. Большинство алгоритмов компьютерной графики к настоящему времени имеют под собой достаточно подробную теоретическую основу с использованием математического аппарата. Это, наряду с отсутствием достаточного количества примеров демонстрации применения, делает их затруднительными в изучении для большинства студентов. Так как одним из методов повышения эффективности обучения является наглядность, имеет смысл визуализировать работу отдельных алгоритмов с помощью технологий компьютерного моделирования.
В настоящее время нет единого комплекса примеров демонстрации алгоритмов, существуют лишь отдельные файлы, написанные на различных языках программирования, для разных операционных систем. Данные файлы необходимо искать, скачивать, на это тратится время, причем не гарантируется безопасность файлов, корректность алгоритмов. Также файлы могут оказаться и вовсе неработоспособными.
Этими обстоятельствами обоснована необходимость разработки демонстрационного программного комплекса для изучения алгоритмов представления графической информации.
В рамках дипломной работы охватить все эти алгоритмы невозможно. Поэтому, в соответствии с заданием, будет разработан программный комплекс по методам и алгоритмам удаления невидимых линий и поверхностей. В проект кроме визуализации алгоритмов входит теоретический материал по ним, блок- схемы. Теоретический материал взят из учебно-методического пособия «Методы и средства представления графической информации» автора к.т.н. Ярош Е.С., алгоритмы реализованы по этому же пособию [1].
Целью выпускной квалификационной работы является разработка демонстрационного комплекса программ для изучения следующих алгоритмов загораживания: Робертса, Аппеля, Z-буфера.
Для достижения поставленной цели, необходимо решить следующие задачи:
1. Рассмотреть алгоритмы загораживания, указанные в задании.
2. Сделать обзор существующих аналогов, демонстрирующих работу алгоритмов.
3. Выбрать инструменты для разработки системы.
4. Разработать архитектуру собственного программного комплекса.
5. Выполнить программную реализацию программного комплекса.
6. Оценить работоспособность готового программного комплекса.

Возникли сложности?

Нужна качественная помощь преподавателя?

👨‍🎓 Помощь в написании

✅ Заключение

В рамках выпускной квалификационной работы было спроектировано и разработано десктоп-приложение «Демонстрационный программный комплекс для изучения алгоритмов загораживания Робертса, Аппеля, Z-буфера».
В ходе выполнения работы решены следующие задачи:
1. Обоснована актуальность разработки.
2. Проведен обзор аналогов.
3. Выбраны инструменты разработки.
4. Спроектирована программная система.
5. Выполнена реализация проекта.
В приложение включены наиболее распространенные алгоритмы загораживания:
- алгоритм Робертса;
- алгоритм Аппеля;
- алгоритм Z-буфера.
Для того, чтобы определить требования к программной системе, была построена модель прецедентов с описанием функционала. По выделенным подсистемам демонстрационного комплекса было проведено описание основных модулей системы, построены диаграммы ее компонентов.
На языке программирования C# было разработано приложение, демонстрирующее применение алгоритмов загораживания, а также произведена интеграция теоретического материала в приложение для более подробного изучения пользователем предметной области. Для работы с графикой использовалась внешняя библиотека OpenTK (OpenGL 4.0). Готовый демонстрационный комплекс позволяет проследить все стадии изменения объекта при применении к нему каждого из алгоритмов.
Предусмотрено задание и сохранение настроек визуализации (положение точки наблюдения, выделение элементов цветом), которые в последующем запуске программы восстанавливаются. При ошибках вычислений обрабатываются исключения, пользователь получает информационное окно с указанием ошибки.
Преимущества разработанного ДПК перед найденными решениями:
- материал структурирован, сопровождается подробным объяснением;
- алгоритмы располагаются в одном месте, что обеспечивает удобство и исключает затраты на поиск;
- предоставление настроек визуализации, а именно ввод исходных данных, изменение скорости визуализации, изменение положения точки наблюдения;
- гарантия работоспособности и безопасности.
Разработка приложения закончена и передана заказчику.
Полный исходный код ДПК представлен в репозитории GitHub [21].
Некоторые перспективы развития: данный продукт можно доработать до универсального учебного пособия по машинной графике, добавив другие темы для изучения (например, закрашивание, отсечение отрезков).

Нужна своя уникальная работа?
Срочная разработка под ваши требования
Рассчитать стоимость
ИЛИ

📕 Список литературы

1. Ярош, Е.С. Методы и средства представления графической информации: учебное пособие / Е.С. Ярош. - Челябинск: Издательский центр ЮУрГУ, 2017. - 230 с.
2. Митин, А.И. Компьютерная графика: справочно-методич. пособие. / А.И. Митин, Н.В. Свертилова - 2-е изд., стереотип. - М.-Берлин: Директ- Медиа, 2016. - 251 с.
3. Удаление невидимых линий и поверхностей. -
http://compgraph.tpu.ru/Del hide line.htm. Дата обращения: 15.02.2020.
4. Алгоритм Робертса. - http://compgraph.tpu.ru/roberts.htm. Дата обращения: 01.03.2020.
5. Алгоритм, использующий Z-буфер. - http://compgraph.tpu.ru/zbuffer.htm. Дата обращения: 01.03.2020.
6. Реализация алгоритма Робертса. - http://algolist.ru/graphics/roberts.php. Дата обращения: 01.03.2020.
7. Set of small graphics programs fully written on C++. - https://github.com/riz- f/graphics-programs. Дата обращения: 04.03.2020.
8. The problem of hidden surface removal. -
http: //learnweb gl .brown3 7 .net/11 advanced rendering/hidden surface remova l.html. Дата обращения: 04.03.2020.
9. Hidden Surface Removal with Java. - https://github.com/gioflores24/hidden- surface-removal . Дата обращения: 04.03.2020.
10. Hidden surface removal using the painter’s algorithm. -
https://github.com/Skar0/sddII. Дата обращения: 04.03.2020.
11.Operating System Market Share Worldwide. - https://gs.statcounter.com/os- market-share. Дата обращения: 15.03.2020.
12. Сравнительный тест DirectX 11, OpenGL и Vulkan. - https: //www. hardwareluxx.ru/index.php/artikel/hardware/grafikkarten/37520- directx-11-vulkan-opengl.html. Дата обращения: 16.03.2020.
13.OpenTK. - https://opentk.net/faq.html. Дата обращения: 25.03.2020.
14. Learn OpenGL. Hello Window. - https://learnopengl.com/Getting-
started/Hello-Window. Дата обращения: 25.03.2020.
15. Learn OpenGL. Coordinate System. - https://learnopengl.com/Getting-
started/Coordinate-Systems. Дата обращения: 25.03.2020...21

🖼 Скриншоты

🛒 Оформить заказ

Работу высылаем в течении 5 минут после оплаты.
Предоставляемые услуги, в том числе данные, файлы и прочие материалы, подготовленные в результате оказания услуги, помогают разобраться в теме и собрать нужную информацию, но не заменяют готовое решение.
Укажите ник или номер. После оформления заказа откройте бота @workspayservice_bot для подтверждения. Это нужно для отправки вам уведомлений.

©2026 Cервис помощи студентам в выполнении работ