Разработка приложения с использованием OpenGL для динамического изображения трехмерной модели объекта "Часовой механизм"

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



Вдункциональное назначение

Данная программа предназначается для представления трехмерной модели часового механизма. Приложение дает следующие возможности:

наблюдать модель;

задавать угол вращения и точку в трехмерном пространстве, относительно которой будет происходить вращение;

устанавливать время на часах;

задавать цвет тумана;

временно приостанавливать вращение, время и запускать его с точки приостановки;

изменять масштаб модели;

ускорять и корректировать угол вращения в динамическом режиме.

3.3 Логическая структура и функциональная декомпозиция проекта

Первый этап. В методе PreCreateWindow устанавливается стиль окна, после чего - формат пикселей, это делается функцией usr_bSetupPixelFormat, в котором в свою очередь выполняются ChoosePixelFormat и SetPixelFormat, которые проверяют формат и устанавливают его соответственно.

Второй этап. Создается контекст воспроизведения, за это отвечает OnCreate, эта функция создает новый контекст воспроизведения OpenGL. Для удаления контекста есть функция OnDelete. За инициализацию отвечает метод usr_bInitOpenGL.

При завершении работы программы нужно освободить занятые ресурсы, за это отвечает метод userDestory OpenGL.

Еще один важный метод (usr_ReSize) устанавливает область вывода, и перспективу. Он вызывается при каждом изменении размера окна.

Рисование самой iены. За это отвечает метод usr_Bigen, который вызывается при каждой перерисовки окна, и в свою очередь вызывает вспомогательную функцию рисования (usrDrawBox ).

Метод usrDrawBox рисует сам корпус для часов и бриллиант в центре циферблата, имеющий функции декоративного украшения.

Так как данная программа является так называемым windows-приложением, то алгоритм её работы зависит от конкретных событий, а пользователь, в свою очередь, получает возможность, через интерфейс, порождать эти события. Единственное событие, которое генерируется без участия пользователя и будет существовать до закрытия приложения - это таймер. Поэтому важную роль играют обработчики событий, таких как выбор пунктов меню, нажатие горячих клавиш (некоторые из них синхронизированы между собой). Самые важные для понимания логической структуры программы события описаны в разделе 2.3 Разработка подсистемы управления событиями.

Так же не маловажную роль в правильном функционировании программы играют расчёты. Расчёты встречаются во многих методах отвечающих за рисование фигур и обрабатывающих события. А именно идёт расчёт: углов, на которые должны повернуться каждая из часовых стрелок за одну секунду; угол поворота маятника за пятую часть секунды; месторасположение отдельных деталей часового механизма; угла и скорости вращения самого объекта.

Ниже приведена таблица, в которой отображены основные методы (функции) и описано, за что они отвечают.

Таблица 1 - Основные методы и функции

Имя функцииФормальные параметрыОписание (метода)PreCreateWindowCREATESTRUCT& csИнициализация окнаusr_bSetupPixelFormat-Установка формата пикселейusr_bInitOpenGL-Инициализация OpenGLusr_DestoryOpenGL-Освобождение ресурсов (из-под OpenGL)usr_ReSizeint x, int y, int width, int heightКорректирует вывод iены на экран при изменении размера окнаusr_Bigen-Рисует функциональные части часового механизмаusr_DrawBox-Рисует корпус часов

Таблица 2 - Основные классы и их функции

Имя классаИмя методаНазначение классаCAboutDlgCAboutDlg, DoDataExchangeСправка о программеCTIMEAppCTIMEApp, Initlnstance, OnAppAboutОтвечает за программу под windowsCMainFrameAssertValid, CMainFrame, Dump, CMainFrame, OnCreate, PreCreateWindowОтвечает за главное окноCTIMEDocCTIMEDoc, AssertValid, -CTIMEDoc, Dump, OnNewDocument, SerializeЗанимается обработкой данныхCTIMEViewCTIMEView, ReSize, usr_Prelnit, usr_DrawBox, DestroyOpenGL, usr_bSetupPixelFormat, blnitOpenGL, usr_Bigen, PreCreateWindow, Create, OnDestroy, OnSize, OnTimer, EraseBkgnd, OnViewRotateЗанимается отображением данных

3.4 Требования к техническому программному обеспечению

Для успешной эксплуатации программного продукта необходим персональный компьютер со следующими характеристиками: процессор Intel Pentium с тактовой частотой 800 МГц и выше, оперативная память - не менее 16 Мбайт, свободное дисковое пространство - не менее 10 Мбайт, устройство для чтения компакт-дисков, монитор типа Super VGA (число цветов - 256). Программное обеспечение: операционная система WINDOWS 2000/XP и выше.

.5 Руководство пользователя

Исходя из функционального назначения приложения видно, что пользователь получает следующие возможности:

задавать угол вращения и точку в трехмерном пространстве, относительно которой будет происходить вращение;

устанавливать время на часах;

задавать цвет тумана;

временно приостанавливать вращение, время и запускать его с точки приостановки;

изменять масштаб модели;

ускорять и корректировать угол вращения в динамическом режиме.

Чтобы начать вращать объект можно воспользоваться одним из способов:

выбрать пункт меню View -> Rotate (Приложение Г, Рисунок Г.2). В появившемся диалоговом окне установить точку координаты, задав определённые параметры на осях х, у, z и задать угол (чем больше угол вращения, тем выше скорость вращения).

нажатиями клавиш A, D, W, S, Q, Е установить точку координаты (относительно которой будет происходить вращение), задав определённые параметры на осях х, у, z соответственно. Для задания угла используются клавиша + и клавиша -, результаты их нажатия соответственно увеличивают или уменьшают угол поворота. Этот способ больше подходит для коррекции уже существующего вращения, он является более динамичным.

Для установки врем