Построение 3D модели "Компьютер" (OpenGL) - Программирование, компьютеры и кибернетика курсовая работа

Построение 3D модели "Компьютер" (OpenGL) - Программирование, компьютеры и кибернетика курсовая работа




































Главная

Программирование, компьютеры и кибернетика
Построение 3D модели "Компьютер" (OpenGL)

Суть программирования с использованием библиотеки OpenGL, его назначение, архитектура, преимущества и базовые возможности. Разработка приложения для построения динамического изображения трехмерной модели объекта "Компьютер", руководство пользователя.


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Работа виртуального таймера основана на передаче сообщений. Приложение может заказать для любого своего окна несколько таймеров, которые будут периодически посылать в функцию окна сообщение с кодом WM_TIMER.
Есть и другой способ, также основанный на передаче сообщений. При использовании этого способа сообщения WM_TIMER посылаются не функции окна, а специальной функции, описанной с ключевым словом _export. Эта функция напоминает функцию окна и, так же как и функция окна, вызывается не из приложения, а из Windows. Функции, которые вызываются из Windows, имеют специальный пролог и эпилог и называются функциями обратного вызова (callback function). Функция окна и функция, специально предназначенная для обработки сообщений таймера, являются примерами функций обратного вызова.
Для создания виртуального таймера приложение должно использовать функцию SetTimer:
UINT WINAPI SetTimer(HWND hwnd, UINT idTimer, UINT uTimeout, TIMERPROC tmprc);
Первый параметр функции (hwnd) должен содержать идентификатор окна, функция которого будет получать сообщения от таймера, или NULL. В последнем случае с создаваемым таймером не связывается никакое окно и сообщения от таймера будут приходить в специально созданную для этого функцию.
Второй параметр (idTimer) определяет идентификатор таймера (он не должен быть равен нулю). Идентификатор используется только в том случае, если первый параметр функции SetTimer содержит идентификатор окна. Так как для одного окна можно создать несколько таймеров, для того чтобы различать сообщения, приходящие от разных таймеров, приложение при создании должно снабдить каждый таймер собственным идентификатором.
Если первый параметр указан как NULL, второй параметр функции игнорируется, так как для таймера задана специальная функция, получающая сообщения только от этого таймера.
Третий параметр (uTimeout) определяет период следования сообщений от таймера в миллисекундах. Физический таймер тикает приблизительно 18,21 раза в секунду (точное значение составляет 1000/54,925). Поэтому, даже если указать, что таймер должен тикать каждую миллисекунду, сообщения будут приходить с интервалом не менее 55 миллисекунд.
Последний параметр (tmprc) определяет адрес функции, которая будет получать сообщения WM_TIMER (мы будем называть эту функцию функцией таймера). Этот параметр необходимо обязательно указать, если первый параметр функции SetTimer равен NULL.
Если приложение больше не нуждается в услугах таймера, оно должно уничтожить таймер, вызвав функцию KillTimer:
BOOL WINAPI KillTimer (HWND hwnd, UINT idTimer);
Первый параметр функции (hwnd) определяет идентификатор окна, указанный при создании таймера функцией SetTimer.
Второй параметр (idTimer) - идентификатор уничтожаемого таймера. Это должен быть либо тот идентификатор, который был указан при создании таймера (если таймер создавался для окна), либо значение, полученное при создании таймера от функции SetTimer (для таймера, имеющего собственную функцию обработки сообщений).
Функция KillTimer возвращает значение TRUE при успешном уничтожении таймера или FALSE, если она не смогла найти таймер с указанным идентификатором.
Рассмотрим способ работы с таймером - подключение таймера к окну. В этом случае функция окна, к которому подключен таймер, будет получать сообщения от таймера с кодом WM_TIMER.
Этот способ самый простой. Вначале надо вызвать функцию SetTimer, указав ей в качестве параметров идентификатор окна, идентификатор таймера и период, с которым от таймера должны приходить сообщения:
#define FIRST_TIMER 1 int nTimerID; nTimerID = SetTimer(hwnd, FIRST_TIMER, 1000, NULL);
В данном примере создается таймер с идентификатором FIRST_TIMER, который будет посылать сообщения примерно раз в секунду.
Для уничтожения таймера, созданного этим способом, следует вызвать функцию KillTimer, указав параметры следующим образом:
Для изменения интервала посылки сообщений следует вначале уничтожить таймер, а потом создать новый, работающий с другим периодом времени:
KillTimer(hwnd, FIRST_TIMER); nTimerID = SetTimer(hwnd, FIRST_TIMER, 100, NULL);
2. РАЗРАБОТКА ПРИЛОЖЕНИЯ ДЛЯ ПОСТРОЕНИЯ ДИНАМИЧЕСКОГО ИЗОБРАЖЕНИЯ ТРЕХМЕРНОЙ МОДЕЛИ ОБЪЕКТА « КОМПЬЮТЕР » .
2.1 Разработка процедуры визуализации трехмерной сцены
Прорисовка в рабочей области начинается с метода void CLab1View::OnDraw(CDC* pDC), в котором вызывается функция usr_RenderScene (). Она отвечает за прорисовку функциональных частей и за некоторые важные расчёты, которые связаны с расположением некоторых отдельных деталей. Модель состоит из геометрических примитивов, таких как цилиндр, параллелепипед, дисковой сектор.
Рисование 3D объекта начинается с установления формата пикселей и области вывода в методах BOOL CLab1View::usr_setuppixelformat() и void CLab1View::usr_Resize(int x, int y, int width, int heidht) соответственно. Рассмотрим подробнее метод usr_RenderScene (), код которого представлен в приложении Б. В этом методе начинается прорисовка объекта. Модель рисуется с верхней ее части, а именно рисуем монитор компьютера - параллелепипед со сторонами 0,7, 0,4, 1,1 - auxSolidBox((GLfloat)0.7,0.4,1.1). Роль подставки монитора выполняет целый ряд отдельных деталей, каждая из которых рисовалась после переноса координат на необходимую величину. Первым создан цилиндр со следующими параметрами - основания 0,25 и 0,25, длина 0,2. Следующий объект - дисковый сектор, нарисован с использованием функции gluDisk (quadric, 0,0.25,16,1). Далее еще один диск, он имеет те же параметры, что и первый. Эти диски были использованы для закрытия пустот. После прорисовки этих элементов переносим координаты функцией glTranslatef(0.0,0.0,-0.4). Рисуем еще один цилиндр с основаниями по 0.15 - gluCylinder (quadric, 0.15, 0.15, 0.3, 100,40), вновь переносим координаты с использованием glTranslatef и рисуем изображение на мониторе компьютера с помощью функции auxSolidBox((GLfloat)1,0.03,1.38).
На данном этапе модель представлена в незаконченном виде без таких важных составляющих как: системный блок, клавиатура, звуковые колонки и, конечно же, стол, на котором располагается любой обычный персональный компьютер.
Переносим координаты и рисуем крышку стола, на котором стоит монитор с помощью функции auxSolidBox((GLfloat)2.2,2.6,0.3). Далее снова функция - glTranslatef (0,0.5,-0.1) и помощью auxSolidBox рисуем клавиатуру компьютера, находящуюся на столе перед монитором. Далее были нарисованы остальные части компьютерного стола, с помощью следующих функций: glTranslatef(1.1,0.235,2.7), glTranslatef(-2.2,0,0), glTranslatef(-1.6,0,0), glTranslatef (0.3,0.25,1). Размеры этих элементов заданы в функциях - auxSolidBox((GLfloat)0.09,2.6,2.5),auxSolidBox((GLfloat)0.09,2.6,2.5), auxSolidBox((GLfloat)0.07,2.6,2.5), auxSolidBox((GLfloat)0.6,2.03,0.1).
Затем рисуются два параллелепипеда, которые представляют собой системный блок компьютера. Для самого блока выбраны следующие параметры: auxSolidBox((GLfloat)0.3,1.4,1.5). Для дисковода: auxSolidBox(0.5,0.5, 0.05). Дисковод анимирован, при нажатии управляющей кнопки он выдвигается и задвигается. Это реализовано с помощью функции - glTranslatef(1.54, l, 1.5), l - переменная, которая изменяется со временем.
И, наконец, для придания модели завершенного вида, необходимо дорисовать звуковые колонки, для этого:
- сначала требуется провести смещение системы координат (для отображения в нужном месте);
- рисование цилиндра (задняя часть колонки);
- рисование параллелепипеда (передняя часть);
- рисование дискового сектора (верхняя часть).
Все необходимые операции производятся теми же функциями glTranslatef, auxSolidBox, gluCylinder, gluDisk.
Весь код метода usr_RenderScene() представлен в приложении А.
2.2 Разработка интерфейса пользователя
Для данной программы разработан интерфейс, позволяющий:
- включать и выключать эффект тумана;
- задавать скорость и вид движения компьютера;
- выбирать тип и задавать параметры перспективы
- приближать и удалять объект с помощью мышки.
Для добавления данных возможностей было отредактирована панель инструментов приложения, а именно
У всех кнопок имеются всплывающие подсказки, а также подсказки, которые появляются в строке состояния.
- «Режим тумана» («View» « Режим тумана») - запуск диалогового окна выбора типа тумана.
- «Выключить туман» («View» « Выключить туман») - устранение эффекта тумана.
- «On\Off» («Move» « On\Off ») - включать и выключать дисковод.
Приложение имеет интуитивно понятный интерфейс, с которым удобно работать.
2.3 Разработка подсистемы управления событиями
Приложения с графическим интерфейсом управляются событиями: все, что происходит в приложении - результат обработки тех или иных событий. События генерируются оконной системой в ответ на различные ситуации: когда нажимается или отпускается клавиша на клавиатуре или кнопка мыши, генерируется соответствующее событие; когда перемещается одно окно и в результате этого перемещения открывается другое, лежавшее ниже, возникает событие, которое сообщает открывшемуся окну о необходимости перерисовать себя. События генерируются всякий раз, когда виджет теряет или получает фокус ввода. В большинстве своем, события генерируются в ответ на действия пользователя, но иногда, например события от таймера, генерируются системой независимо от пользователя.
Таким образом, разработка подсистемы управления событиями занимает особое место в общей системе разработки приложения. К основным событиям, обеспечивающим корректную работу программы, относят:
- WM_DESTROY - освобождение занятых ресурсов;
- WM_SIZE - изменения сцены относительно размеров окна;
- WM_ERASEBKGND - предотвращения мерцания;
- WM_TIMER - используется для создания таймера;
- WM_MOUSEWHEEL - обработка вращения колеса мышки;
- WM_KEYDOWN - обработка нажатия клавиши;
- COMMAND(ID_PERSP, CKarkasView::OnPersp ()) - обработка события при вызове окна настройки перспективы;
- COMMAND(ID_OPTIONS, CKarkasView::OnOptions ()) - обработка события при вызове окна настройки типа вращения и скорости движения объекта;
- COMMAND(ID_VIEW_1, CKarkasView::OnView1())- обработка события выбора типа тумана;
- COMMAND(ID_VIEW_SBROS, CKarkasView:: OnVewSbros()) - обработка события нажатия кнопки «Убрать туман»;
- COMMAND (ID_VIEW_MOVE, CKarkasView::OnMove ()) - обработка нажатия кнопки «Движение».
3. ИНФОРМАЦИОННОЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Программа называется «Трехмерная модель Компьютера». При работе с данной программой у пользователя есть возможность работать с визуальной моделью данного объекта. Вращать ее относительно осей, включать и выключать эффект тумана, а также задавать тип тумана, приближать и удалять с помощью колеса мышки, включать и выключать вращение модели и устанавливать скорость вращения, а также имеется возможность управления дисководом. Программное обеспечение, на котором разработана приложение - Microsoft Visual С++ 6.0 с использованием библиотеки OpenGL.
Данное приложение обеспечивает следующие возможности:
- изменение положения объекта в пространстве (перемещение относительно осей);
- включение и выключение эффекта тумана;
- включение и выключение вращения сцены;
- установка скорости вращения сцены.
3.3 Логическая структура и функциональная декомпозиция проекта
Инициализация OpenGL происходит в несколько этапов.
1. Выбираем и устанавливаем формат пикселей. В информации о формате пикселей указывается такая информация как глубина цвета, различные флаги поверхности. Вся эта структура представляется в специальной структуре PIXELFORMATDESCRIPTOR. Далее передаем на рассмотрение операционной системе, выбранный формат пикселей. После того, как система просмотрит его, она выберет наиболее совпадающий формат с тем, который поддерживается в контексте устройства. Функцией, осуществляющей такого рода проверку, является ChoosePixelFormat(). После выбора формата пикселей функция SetPixelFormat() устанавливает его в контексте устройства.
2. Создаем контекст вывода для библиотеки OpenGL. Данный контекст создается с помощью функции wglCreateContext(), далее функция wglMakeCurrent() устанавливает текущий контекст. Функция wglGetCurrentDC() необходима для корректного завершения приложения, а wglGetCurrentDC() - для удаления контекста воспроизведения.
Одним из важных методов является usr_ReSize(), который устанавливает перспективу и область вывода.
За отображение сцены отвечает метод usr_RenderScene(), который вызывает в свою очередь функции рисования компьютера.
Функции, вызываемые методом usr_RenderScene() были подробно рассмотрены в разделе «2.1 Разработка процедуры визуализации трехмерной сцены», а важные для логического понимания структуры события программы рассмотрены в разделе «2.3 Разработка подсистемы управления событиями».
Для наглядности приведем таблицу наиболее важных методов - таблица 3.1.
Таблица 3.1 - Основные методы и функции
cs - объект структуры CREATESTRUCT.
Производится изменение значений, присвоенных переменным-членам структуры CREATESTRUCT для изменения режима открытия окна и его параметров.
Освобождение ресурсов (из-под OpenGL)
usr_ReSize (int x, int y, int width, int height)
Корректирует вывод сцены на экран при изменении размера окна
x и y определяют координаты левого нижнего угла вывода, width и height - ширину и высоту области вывода
В таблице 3.2 приведены спецификации разработанных классов.
Класс главного окна приложения. Используется для управления главным окном
Таблица 3.2 - Спецификации классов (Продолжение)
Главный класс приложения. Управляет работой всего приложения. Методы этого класса выполняют инициализацию приложения, обработку цикла сообщений и вызываются при завершении приложения.
Класс окна просмотра документа. Служит для отображения в клиентской области класса документа приложения в нашем случае нашей 3D модели.
Класс справочной информации о программе
Класс диалогового окна. Служит для настройки и смены перспективы
Класс диалогового окна. Служит для включения и выбора типа режима тумана.
Класс диалогового окна. Служит для включения различного типа и скорости движения объекта.
3.4 Требования к техническому обеспечению программы
Для успешной эксплуатации программного продукта необходим персональный компьютер со следующими характеристиками: процессор Intel Pentium с тактовой частотой 800 МГц и выше, оперативная память - не менее 64 Мбайт, свободное дисковое пространство - не менее 500 Мбайт, устройство для чтения компакт-дисков, монитор типа Super VGA (число цветов - 256). Программное обеспечение: операционная система WINDOWS 2000/XP и выше.
Для установки приложения требуется скопировать с установочного диска, прилагаемого к работе файл «Karkas.exe» в любую директорию на жестком диске. Для запуска программы нужно два раза нажать на левую клавишу мыши.
Разработанное приложение имеет интуитивно понятный интерфейс, который схож с другими Windows - приложениями. При запуске программы пользователь 3D модель компьютера, которую он может вращать влево при нажатии клавиши < на дополнительной клавиатуре, вправо при нажатии клавиши >, вверх - клавиша ^ и вниз клавиша - v. Также имеется возможность приближать и удалять модель, это можно сделать, задействовав колесо мыши.
Существует поддержка различных графических эффектов. Для выбора типа и включения тумана пользователи требуется выполнить команду «View» «Режим тумана». При выполнении этой команды перед пользователем откроется диалоговое окно для выбора типа тумана, вид окна приведен в приложении В, рисунок В.3. Для отключения тумана следует выполнить следующую последовательность действий: «View» «Выключить туман».
Приложение имеет поддержку смены перспективы. Можно выбирать из трех видов перспектив: glOrtho, glFrustum, gluPerspective. Для выбора и настройки перспективы следует выполнить команду: «View» «Настройка перспективы» нажать кнопку на панели инструментов. Вид диалогового окна приведен в приложении В.
Не менее интересным для пользователя окажется выбор типа вращения и скорости вращения сцены. Для запуска анимации требуется выполнить команду «View» «Движение» или нажать кнопку на панели инструментов. После указанной последовательности действий модель начнет вращаться выбранным способом. Для отключения движения требуется выполнить ту же самую последовательность действий, что и при включении.
Также в модели имеется дисковод, который может задвигаться и выдвигаться. Для того чтобы его задействовать требуется нажать «Move» «On/Off» или клавишу «O», дисковод выдвинется. Для того чтобы задвинуть его назад требуется еще раз выполнить предыдущую последовательность действий.
В ходе разработки данного приложения были получены практические навыки по разработке программ для операционных систем семейства Windows с применением технологий трехмерной графики с использованием библиотеки OpenGL.
Таким образом, можно выделить следующие решенные в рамках данной курсовой работы задачи:
- изучение принципов работы OpenGL в оконной среде Windows;
- получение практических навыков использования средств OpenGL;
- получение навыков программирования динамических трехмерных анимационных сцен;
- получение навыков программирования интерактивных трехмерных приложений.
Также была проведена работа с такими возможностями библиотеки как:
- использование графических примитивов;
Разработанное приложение является полнофункциональной 3D моделью космического корабля, содержит в себе большое количество встроенных настроек, с помощью которых отражаются основные возможности и достоинства графической библиотеки OpenGL, а также интуитивно понятный интерфейс.
1. Порев В.Н. Компьютерная графика. СПб., BHV, 2002.
2. Херн Бейкер, Компьютерная графика и стандарт OpenGL, 3-е издание.: Пер. с англ. - М.: Издательство дом «Вильямс», 2005. - 1168 с.
3. Шикин А.В., Боресков А.В. Компьютерная графика. Полигональные модели. Москва, ДИАЛОГ-МИФИ, 2001.
4. Тихомиров Ю. Программирование трехмерной графики. СПб, BHV, 1998.
5. OpenGL performance optimization, Siggraph'97 course.
6. Visual Introduction in OpenGL, SIGGRAPH'98.
7. The OpenGL graphics system: a specification (version 1.1).
8. Программирование GLUT: окна и анимация. Miguel Angel Sepulveda, LinuxFocus.
9. The OpenGL Utility Toolkit (GLUT) Programming Interface, API version 3, specification.
10. Хилл, Ф. OpenGL. Программирование компьютерной графики. Для профессионалов/ Ф.Хилл, - СПб.: «Питер», 2004. - 1088с.
11. http://www.helloworld.ru/texts/comp/games/opengl/opengl2/index.html
12. http://pmg.org.ru/nehe/index.html
void CKarkasView::usr_RenderScene()
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
GLUquadricObj * quadric = gluNewQuadric();
gluQuadricDrawStyle(quadric, GLU_FILL);
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
auxSolidBox((GLfloat)0.7,0.4,1.1);//монитор
gluCylinder (quadric, 0.25, 0.25, 0.2, 16,40);
gluCylinder (quadric, 0.15, 0.15, 0.3, 100,40);
glColor3f(0.5,0.5,0.5);//стол.крышка
glColor3f(0.8,0.7,0.5);//клавиатура
glColor3f(0.5,0.5,0.5);//элементы стола
auxSolidBox((GLfloat)0.09,2.6,2.5);
auxSolidBox((GLfloat)0.09,2.6,2.5);
auxSolidBox((GLfloat)0.07,2.6,2.5);
auxSolidBox((GLfloat)0.6,2.03,0.1);
gluCylinder (quadric, 0.15, 0.15, 1.1, 16,40);
auxSolidBox((GLfloat)0.32,0.1,1.3);
auxSolidBox((GLfloat)0.3,0.03,0.1);
gluCylinder (quadric, 0.15, 0.15, 1.1, 16,40);
auxSolidBox((GLfloat)0.32,0.1,1.3);
auxSolidBox((GLfloat)0.3,0.03,0.1);
glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE);
GLfloat light_position[] = { 1.0, 0.0, 0.0, 1.0 };glLightfv(GL_LIGHT0, GL_POSITION, light_position);
Обработка события вращения колеса мышки
BOOL CKarkasView::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
return CView::OnMouseWheel(nFlags, zDelta, pt);
Обработка события нажатия на кнопку «Движение»
if((OptObj.m_rotate==true)/*&&(OptObj.m_rotate!=0)*/) //группа вращения сцены активна
if (OptObj.m_XRG==true) //вращение по Х (вокруг вертикальной оси) активно
if(OptObj.m_XGroup==1) XSceneRot=-1;
if (OptObj.m_YRG==true) //вращение по Y (вокруг горизонтальной оси) активно
if(OptObj.m_YGroup==1) YSceneRot=-1;
if(FirstTimer==0) //включаем таймер
SetTimer(1,scene_rotate_speed,NULL);
else //ставим таймеру новую скорость
SetTimer(1,scene_rotate_speed,NULL);
Обработка события установки перспективы
// TODO: Add your command handler code here
glLoadIdentity();glOrtho(object.m_1,object.m_2,object.m_3,object.m_4,object.m_5,object.m_6;
AfxMessageBox("Changed to glOrtho");
glFrustum(object.m_1,object.m_2,object.m_3,object.m_4,object.m_5,object._6);
AfxMessageBox("Changed to glFrustum");
gluPerspective(object.m_1,object.m_2,object.m_3,object.m_4);
AfxMessageBox("Changed to gluPerspective");
gluLookAt(object.m_1,object.m_2,object.m_3,object.m_4,object.m_5,object.m_6,object.m_7,object.m_8,object.m_9);
AfxMessageBox("Changed to gluLookAt");
AfxMessageBox("Mode not selected - set to default");
АЛГОРИТМ ПОСТОРОЕНИЯ ТРЕХМЕРНОГО ОБЪЕКТА «КОМПЬЮТЕР» СРЕДСТВАМИ OPENGL
Рисунок В.1 - Алгоритм построения объекта «Компьютер»
ТРЕХМЕРНАЯ МОДЕЛЬ ОБЪЕКТА «КОМПЬЮТЕР»
Рисунок Г.1 - Трехмерная модель объекта «Компьютер»
Рисунок Г.2 - Окно настройки перспективы
Рисунок Г.3 - Окно настройки тумана
Основы программирования с использованием библиотеки OpenGL. Приложение для построения динамического изображения модели объекта "Батискаф": разработка процедуры визуализации трехмерной схемы, интерфейса пользователя и подсистемы управления событиями. курсовая работа [1,4 M], добавлен 26.06.2011
Функциональные возможности библиотеки OpenGL. Разработка процедуры визуализации трехмерной сцены, интерфейса пользователя и подсистемы управления событиями с целью создания приложения для построения динамического изображения 3D-модели объекта "Самолет". курсовая работа [1,7 M], добавлен 28.06.2011
Программирование приложения с использованием библиотеки OpenGL и функции для рисования геометрических объектов. Разработка процедуры визуализации трехмерной сцены и интерфейса пользователя. Логическая структура и функциональная декомпозиция проекта. курсовая работа [1,1 M], добавлен 23.06.2011
Разработка трехмерной модели приложения "Гоночный автомобиль" на языке С++ с использованием библиотеки OpenGL и MFC, создание программы в среде Visual Studio 6.0. Информационное обеспечение, логическая структура и функциональная декомпозиция проекта. курсовая работа [3,9 M], добавлен 29.06.2011
Создание программы на языке C++ с использованием графических библиотек OpenGL в среде Microsoft Visual Studio. Построение динамического изображения трехмерной модели объекта "Нефтяная платформа". Логическая структура и функциональная декомпозиция проекта. курсовая работа [1,8 M], добавлен 23.06.2011
Преимущества использования библиотеки ОpеnGL для создания программ с применением технологий трехмерной графики. Прорисовка основных частей модели лунохода, разработка интерфейса пользователя. Логическая структура и функциональная декомпозиция проекта. курсовая работа [261,3 K], добавлен 02.07.2011
Использование библиотеки ОpеnGL с целью разработки программ для ОС семейства Windоws с применением технологий трехмерной графики. Прорисовка функциональных частей модели парусника, проектирование интерфейса пользователя и подсистемы управления событиями. курсовая работа [747,0 K], добавлен 26.06.2011
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .

© 2000 — 2021



Построение 3D модели "Компьютер" (OpenGL) курсовая работа. Программирование, компьютеры и кибернетика.
Реферат: О снах
Рефераты По Географии 10 Класс
Дипломная работа: Правоведение
Курсовая работа: Совершенствование организации работы нефтебазы в ЗАО "Константиново"
Реферат: Основные качества речи оратора
Риски Организации Курсовая Работа
Курсовая работа: Приемы и методы создания индивидуального имиджа. Скачать бесплатно и без регистрации
Книга: Всемирная история. том 4. Новейшая история Оскар Йегер 2002г.
Готовые Сочинения 2022
Проблема Взаимоотношения Родителей И Детей Сочинение
Сочинение по теме Пленительный женский образ в романе Тургенева "Рудин" (Ласунская)
Сочинение Ранняя Осень 7 Класс
Контрольная работа по теме Электроснабжение промышленных предприятий
Управление Качеством Продукции Курсовая
Реферат по теме Гарантии депутатской деятельности (Украина)
Основы Общей Экологии Реферат
Контрольная работа: Аналіз ефективності банківських операцій в комерційному банку ВАТ КБ "Надра" в 2004–2008 рр
Сочинение По Картине П Джогин На Валааме
Курсовая работа по теме Образ моста в произведении Иво Андрича "Мост на Дрине"
Контрольная Работа 1 10 Класс Колягин
Особливостi обчислення собiвaртостi хлiбобулочної продукції - Бухгалтерский учет и аудит статья
Культура XX века - Культура и искусство реферат
Методика проведения устной работы по геометрии в основной школе - Педагогика дипломная работа


Report Page