Программирование приложения с использованием библиотеки OpenGL и функции для рисования геометрических объектов. Разработка процедуры визуализации трехмерной сцены и интерфейса пользователя. Логическая структура и функциональная декомпозиция проекта.
При низкой оригинальности работы "Разработка приложения с использованием OpenGL для динамического изображения трехмерной модели объекта "Часовой механизм"", Вы можете повысить уникальность этой работы до 80-100%
Стандарт OPENGL (Open Graphics Library - открытая графическая библиотека) был разработан и утвержден в 1992 году ведущими фирмами в области разработки программного обеспечения как эффективный аппаратно-независимый интерфейс, пригодный для реализации на различных платформах. Дополнения и изменения в стандарте реализуются таким образом, чтобы сохранить совместимость с разработанным ранее программным обеспечением. Приложения, использующие OPENGL, гарантируют одинаковый визуальный результат вне зависимости от типа используемой операционной системы и организации отображения информации. Стандарт OPENGL имеет продуманную структуру и интуитивно понятный интерфейс, что позволяет с меньшими затратами создавать эффективные приложения, содержащие меньше строк кода, чем с использованием других графических библиотек. Все функции можно разделить на пять категорий: - Функции описания примитивов определяют объекты нижнего уровня иерархии (примитивы), которые способна отображать графическая подсистема.Вершина является атомарным графическим примитивом OPENGL и определяет точку, конец отрезка, угол многоугольника и т.д. Все остальные примитивы формируются с помощью задания вершин, входящих в данный примитив. В число основных атрибутов входят положение вершины в пространстве, цвет вершины и вектор нормали. Положение вершины определяются заданием ее координат в двух, трех, или четырехмерном пространстве (однородные координаты). Vertex3* получает координаты х, у, z и заносит в координату w значение 1.В OPENGL используется модель освещения, в соответствии с которой цвет точки определяется несколькими факторами: свойствами материала и текстуры, величиной нормали в этой точке, а также положением источника света и наблюдателя. Аргумент pname определяет, какой параметр модели освещения будет настраиваться и может принимать следующие значения: - GL_LIGHT_MODEL_LOCAL_VIEWER параметр param должен быть булевым и задает положение наблюдателя.С их помощью можно определить рассеянный, диффузный и зеркальный цвета материала, а также степень зеркального отражения и интенсивность излучения света, если объект должен светиться. Какой именно параметр будет определяться значением param, зависит от значения pname: - GL_AMBIENT параметр params должен содержать четыре целых или вещественных значения цветов RGBA, которые определяют рассеянный цвет материала (цвет материала в тени). GL_DIFFUSE параметр params должен содержать четыре целых или вещественных значения цветов RGB А, которые определяют диффузный цвет материала. GL_SPECULAR параметр params должен содержать четыре целых или вещественных значения цветов RGBA, которые определяют зеркальный цвет материала. GL_SHININESS параметр params должен содержать одно целое или вещественное значение в диапазоне от 0 до 128, которое определяет степень зеркального отражения материала.Определение свойств материала объекта имеет смысл, только если в сцене есть источники света. Добавить в сцену источник света можно с помощью команд: - void GLLIGHT[i f] (GLENUM light, GLENUM pname, GLFLOAT param); Параметр light однозначно определяет источник света. Рассмотрим значения параметра pname: - GL_SPOT_EXPONENT параметр param должен содержать целое или вещественное число от 0 до 128, задающее распределение интенсивности света. GL_SPOT_CUTOFF параметр param должен содержать целое иливещественное число между 0 и 90 или равное 180, которое определяет максимальный угол разброса света.Легкое затуманивание сцены создает реалистичный эффект, а частенько может и скрыть некоторые артефакты, которые появляются, когда в сцене присутствуют отдаленные объекты. Туман в OPENGL реализуется путем изменения цвета объектов в сцене в зависимости от их глубины, т.е. расстояния до точки наблюдения. Изменение цвета происходит либо для вершин примитивов, либо для каждого пикселя на этапе растеризации в зависимости от реализации OPENGL. Метод вычисления интенсивности тумана в вершине можно определить с помощью команд: - void GLFOG[if] (enum pname, T param);Прорисовка в рабочей области начинается с метода void CTIMEVIEW::ONDRAW(CDC PDC), в котором вызывается функция usr_Bigen(). Так же в методе usr_Bigen() организован вызов функции usr_DRAWBOX(), которая организует рисование корпуса часов. Стрелки в зависимости от их функционального назначения имеют свои параметры. Чтобы создавалась иллюзия работы часового механизма в передвижении стрелок, используются глобальные переменные, которые хранят в себе предыдущее положение стрелок и перед прорисовкой стрелок происходит перерасчет, где должна находиться каждая из стрелок. Принцип создания вида качания маятника аналогичен принципу движения стрелок, единственное различие в том, что существует ограничение на угол поворота маятника и перенаправление вращения в другую сторону, иначе маятник вращался бы вокруг циферблата.
План
Содержание opengl приложение программирование интерфейс
Введение
1. Программирование с использованием библиотеки OPENGL
1.1 Функции для рисования геометрических объектов
1.2 Модель освещения
1.3 Спецификация материалов
1.4 Описание источников света
1.5 Эффект тумана
2. Разработка приложения для построения динамического изображения трехмерной модели объекта "Часовой механизм"
2.1 Разработка процедуры визуализации трехмерной сцены
2.2 Разработка интерфейса пользователя
2.3 Разработка подсистемы управлениями событиями
3. Информационное и программное обеспечение
3.1 Общие сведения о программе
3.2 Функциональное назначение
3.3 Логическая структура и функциональная декомпозиция проекта
3.4 Требования к техническому программному обеспечению
3.5 Руководство пользователя
Заключение и выводы
Список литературы
Приложение А. Код приложения
Приложение Б. Диаграмма классов
Приложение В. Блок схема
Приложение Г. Экранные формы
Введение
OPENGL является одним из самых популярных прикладных программных интерфейсов (API - Application Programming Interface) для разработки приложений в области двумерной и трехмерной графики.
Стандарт OPENGL (Open Graphics Library - открытая графическая библиотека) был разработан и утвержден в 1992 году ведущими фирмами в области разработки программного обеспечения как эффективный аппаратно-независимый интерфейс, пригодный для реализации на различных платформах.
Характерными особенностями OPENGL, которые обеспечили распространение и развитие этого графического стандарта, являются: - Стабильность. Дополнения и изменения в стандарте реализуются таким образом, чтобы сохранить совместимость с разработанным ранее программным обеспечением.
- Надежность и переносимость. Приложения, использующие OPENGL, гарантируют одинаковый визуальный результат вне зависимости от типа используемой операционной системы и организации отображения информации. Кроме того, эти приложения могут выполняться как на персональных компьютерах, так и на рабочих станциях и суперкомпьютерах.
- Легкость применения. Стандарт OPENGL имеет продуманную структуру и интуитивно понятный интерфейс, что позволяет с меньшими затратами создавать эффективные приложения, содержащие меньше строк кода, чем с использованием других графических библиотек. Необходимые функции для обеспечения совместимости с различным оборудованием реализованы на уровне библиотеки и значительно упрощают разработку приложений.
Описать возможности OPENGL можно через функции его библиотеки. Все функции можно разделить на пять категорий: - Функции описания примитивов определяют объекты нижнего уровня иерархии (примитивы), которые способна отображать графическая подсистема. В OPENGL в качестве примитивов выступают точки, линии, многоугольники и т.д.;
- Функции описания источников света служат для описания положения и параметров источников света, расположенных в трехмерной сцене;
- Функции задания атрибутов. С помощью задания атрибутов программист определяет, как будут выглядеть на экране отображаемые объекты. Другими словами, если с помощью примитивов определяется, что появится на экране, то атрибуты определяют способ вывода на экран. В качестве атрибутов OPENGL позволяет задавать цвет, характеристики материала, текстуры, параметры освещения;
- Функции визуализации позволяет задать положение наблюдателя в виртуальном пространстве, параметры объектива камеры. Зная эти параметры, система сможет не только правильно построить изображение, но и отсечь объекты, оказавшиеся вне поля зрения;
- Функций геометрических преобразований позволяют программисту выполнять различные преобразования объектов - поворот, перенос, масштабирование.
OPENGL может выполнять дополнительные операции, такие как использование сплайнов для построения линий и поверхностей, удаление невидимых фрагментов изображений, работа с изображениями на уровне пикселей и т.д.
Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность своей работы