Разработка приложения с использованием 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* пол