Разработка приложения с использованием OpenGL для динамического изображения трехмерной модели объекта "Часовой механизм"
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
Министерство образования и науки Российской Федерации Государственное образовательное учреждение Высшего профессионального образования Северокавказский государственный университет Кафедра информационных систем и технологий
Пояснительная записка к курсовой работе
на тему: Разработка приложения с использованием OpenGL для динамического изображения трехмерной модели объекта Часовой механизм
по диiиплине Компьютерная геометрия и графика
Выполнил: И.А. Семенов
Ставрополь, 2011
Содержание
opengl приложение программирование интерфейс
Введение
. Программирование с использованием библиотеки OpenGL
.1 Функции для рисования геометрических объектов
.2 Модель освещения
.3 Спецификация материалов
.4 Описание источников света
.5 Эффект тумана
. Разработка приложения для построения динамического изображения трехмерной модели объекта "Часовой механизм"
.1 Разработка процедуры визуализации трехмерной iены
.2 Разработка интерфейса пользователя
.3 Разработка подсистемы управлениями событиями
. Информационное и программное обеспечение
.1 Общие сведения о программе
.2 Функциональное назначение
.3 Логическая структура и функциональная декомпозиция проекта
.4 Требования к техническому программному обеспечению
.5 Руководство пользователя
Заключение и выводы
Список литературы
Приложение А. Код приложения
Приложение Б. Диаграмма классов
Приложение В. Блок схема
Приложение Г. Экранные формы
Введение
является одним из самых популярных прикладных программных интерфейсов (API - Application Programming Interface) для разработки приложений в области двумерной и трехмерной графики.
Стандарт OpenGL (Open Graphics Library - открытая графическая библиотека) был разработан и утвержден в 1992 году ведущими фирмами в области разработки программного обеспечения как эффективный аппаратно-независимый интерфейс, пригодный для реализации на различных платформах.
Характерными особенностями OpenGL, которые обеспечили распространение и развитие этого графического стандарта, являются:
Стабильность. Дополнения и изменения в стандарте реализуются таким образом, чтобы сохранить совместимость с разработанным ранее программным обеспечением.
Надежность и переносимость. Приложения, использующие OpenGL, гарантируют одинаковый визуальный результат вне зависимости от типа используемой операционной системы и организации отображения информации. Кроме того, эти приложения могут выполняться как на персональных компьютерах, так и на рабочих станциях и суперкомпьютерах.
Легкость применения. Стандарт OpenGL имеет продуманную структуру и интуитивно понятный интерфейс, что позволяет с меньшими затратами создавать эффективные приложения, содержащие меньше строк кода, чем с использованием других графических библиотек. Необходимые функции для обеспечения совместимости с различным оборудованием реализованы на уровне библиотеки и значительно упрощают разработку приложений.
Описать возможности OpenGL можно через функции его библиотеки. Все функции можно разделить на пять категорий:
Функции описания примитивов определяют объекты нижнего уровня иерархии (примитивы), которые способна отображать графическая подсистема. В OpenGL в качестве примитивов выступают точки, линии, многоугольники и т.д.;
Функции описания источников света служат для описания положения и параметров источников света, расположенных в трехмерной iене;
Функции задания атрибутов. С помощью задания атрибутов программист определяет, как будут выглядеть на экране отображаемые объекты. Другими словами, если с помощью примитивов определяется, что появится на экране, то атрибуты определяют способ вывода на экран. В качестве атрибутов OpenGL позволяет задавать цвет, характеристики материала, текстуры, параметры освещения;
Функции визуализации позволяет задать положение наблюдателя в виртуальном пространстве, параметры объектива камеры. Зная эти параметры, система сможет не только правильно построить изображение, но и отсечь объекты, оказавшиеся вне поля зрения;
Функций геометрических преобразований позволяют программисту выполнять различные преобразования объектов - поворот, перенос, масштабирование.может выполнять дополнительные операции, такие как использование сплайнов для построения линий и поверхностей, удаление невидимых фрагментов изображений, работа с изображениями на уровне пикселей и т.д.
1. Программирование с использованием библиотеки OpenGL
.1 Функции для рисования геометрических объектов
Вершина является атомарным графическим примитивом OpenGL и определяет точку, конец отрезка, угол многоугольника и т.д. Все остальные примитивы формируются с помощью задания вершин, входящих в данный примитив.
С каждой вершиной ассоциируются ее атрибуты. В число основных атрибутов входят положение вершины в пространстве, цвет вершины и вектор нормали. Положение вершины определяются заданием ее координат в двух, трех, или четырехмерном пространстве (однородные координаты). Это реализуется с помощью нескольких вариантов команды glVertex*:
void glVertex[2 3 4][s i f d] (type coords);
- void glVertex[2 3 4][s i f d]v (type *coords).
Каждая команда задает четыре координаты вершины: х, у, z, w. Команда glVertex2* пол