Разработка программы для операционных систем с применением технологий трехмерной графики

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

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



их значений аргумента pname:

-GL_FOG_DENSITY param определяет коээфициент d;

-GL_FOG_START param определяет коэффициент s;

-GL_FOG_END param определяет коэффициент e.

Цвет тумана задается с помощью аргумента pname, равного GL_FOG_COLOR в этом случае params - указатель на массив из 4-х компонент цвета.

2. РАЗРАБОТКА ПРИЛОЖЕНИЯ ДЛЯ ПОСТРОЕНИЯ ДИНАМИЧЕСКОГО ИЗОБРАЖЕНИЯ ТРЕХМЕРНОЙ МОДЕЛИ ОБЪЕКТА "Корабль"

.1 Разработка процедуры визуализации трехмерной iены

За прорисовку самого грузового автомобиля отсвечает метод void CLR1View::usr_RenderScene(). Вся модель состоит из довольно большого числа примитивов, таких как прямоугольный паралелипипед, конус, линия, простой многоугольник.

Первым нарисованы паралелипипеды для разных частей модели: дна Корабльа и кармы. После этого - цилиндры - тоже для разных частей модели: парусных матчт и некоторых частей штурвала. Но перед этим фигуры совмещены нужным образом.

Затем нарисованы выпуклые многоугольники - паруса . Все эти фигуры нарисованы с помощью команд: glBegin, glEnd, glVertex3d, где первые две команды - операторные скобки, а третий - точка в трехмерном пространстве.

Все необходимые операции производились теми же функциями: glTranslated, glRotated.

Так же в iене присутствуют источники света, их восемь, и расположены они по вершинам воображаемого куба. Можно включать/выключать эффект тумана.

2.2 Разработка интерфейса пользователя

Через интерфейс, пользователь может изменять работу программы. Имеются следующие возможности:

-включать/выключать источники света;

-включать/выключать эффект тумана;

-разворачивать объект относительно трех осей;

-Перемещать объект относительно одной оси.

Для добавления этих возможностей в приложении отредактировано панель элементов, добавлены следующие пункты (и обработчики их выбора):

-К+ - Вывод объекта в виде каркаса;

-К- - Вывод сплошного объекта;

-Т+ - включает эффект тумана;

-Т- - выключает эффект тумана;

Вызов каждого пункта меню можно заменить нажатием на клавиши, таблица соответствия приведена ниже.

Таблица 1 - "Горячие" клавиши

№Пункт меню"Горячая" клавиша1К+42К-34Т+55Т-66Вращение относительно оси Х<>7Вращение относительно оси Y 8Вращение относительно оси Z9Перемещение объекта впередZ10Перемещение объекта назадX11Включение освещения112Выключение освещения2

3. ИНФОРМАЦИОННОЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

3.1 Общие сведения о программе

Программа называется "Трехмерная модель Корабльа". При её использовании, пользователь получает возможность работать с визуальной моделью Корабльа. Вращать модель относительно трех осей, изменять освещение, включать/выключать эффект тумана. Программное обеспечение, на котором разработано приложение - Microsoft Visual Studio 6 с использованием библиотеки OpenGL.

.2 Функциональное назначение

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

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

-изменять её положение в пространстве (вращать относительно трех осей);

-включать/выключать эффект тумана;

-изменять освещение;

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

Инициализация OpenGL происходит в два этапа.

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

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

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

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

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

№Имя функции (метода)Описание1PreCreateWindowИнициализация окна2usr_bSetupPixelFormatУстановка формата пикселей3usr_bInitOpenGLИнициализация OpenGL4user_DestoryOpenGLОсвобождение ресурсов 5usr_ReSizeКорректирует вывод iены на экран при изменении размера окна6usr_RenderSceneРисует Корабль7glPushMatrixПомещает в стек копию текущей матрицы.8glPopMatrixВыталкивает на вершину стека матрицу, расположенную под матрицей на вершине, заменяя ее собой.9glTranslatedВыполняет сдвиг текущей матрицы на "вектор сдвига".10glRotatedВ функции вычисляется матрица поворота11glVertex3fЗадает положение вершины в трехмерном пространстве12glColor3fУстанавливает текущий цвет для вершины.

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

Для успешной эксплуатации программного продукта необходим персональный компьютер со следующими характеристиками: процессор Intel Pentium с тактовой частотой 800 МГц и выше, оперативная память - не менее 64 Мбайт, свободное дисковое пространство - не менее 500 Мбайт, устройство для