Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Semenov_Evgeniy_Zapiska.docx
Скачиваний:
3
Добавлен:
18.12.2018
Размер:
157.33 Кб
Скачать

Аннотация

В данной работе рассматривается графическое моделирование сложного механического устройства с использованием библиотек Windows API и OpenGL.

У дадзенай працы разглядаецца графiчнае мадэляванне складанага механiчнага прылады з выкарыстаннем бiблiятэк Windows API i OpenGL.

This paper describes a graphical simulation of complex mechanical devices using Windows API libraries and OpenGL.

Реферат

Курсовая работа, 23 с., 2 рис., 4 таблицы, 3 источника, 1 приложение.

КОМПЬЮТЕРНАЯ ГРАФИКА, ПРОГРАММИРОВАНИЕ, WINDOWS API, OPENGL

Объект исследования – графическое моделирование. Цель работы – разработка программного обеспечения графической эмуляции сложного механического устройства.

Результатом является программный продукт, позволяющий эмулировать работу восьмисегментной руки-манипулятора.

Содержание

АННОТАЦИЯ 3

РЕФЕРАТ 4

СОДЕРЖАНИЕ 5

ВВЕДЕНИЕ 6

Постановка задачи 8

Создать программу, эмулирующую поведение руки-манипулятора, которая 8

состоит из восьми сегментов шарнирного соединения, каждое из соединений имеет собственный привод, позволяющий осуществить поворот сегмента в месте соединения; 8

обеспечивает поступательное движение сегментов путем комбинации их вращательных движений. 8

реализует Вращение сцены мышью 8

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

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

2 Выбор средств разработки 10

3 Теоретические сведения 12

3.1WinAPI 12

3.2 ждлдлждлэжлд OpenGL 15

4. Разработка и тестирование программного обеспечения 19

ЗАКЛЮЧЕНИЕ 21

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 22

ПРИЛОЖЕНИЕ А 23

ТЕКСТ ПРОГРАММЫ юдлолдодло 23

Введение

Темой данной курсовой работы является создание руки манипулятора через WinAPI. В требованиях к работе также указано использовать для визуализации графическую библиотеку OpenGL (Open Graphics Library).

Тема работы, без сомнения, актуальна по следующим причинам:

  • разрабатываемая в ходе выполнения работы программа использует библиотеку WinAPI (Windows Application Programming Interfaces), которая является интерфейсом прикладного программиста операционной системы Windows. Доля Microsoft Windows той или иной версии, на рынке операционных систем составляет даже по данным её противников, более 85%. Это означает, что любой специалист, так или иначе занимающийся программированием, обязан знать, по крайней мере, основы WinAPI, несмотря на то, что многие современные технологии (например .NET), скрывают от пользователя уровень WinAPI, предоставляя набор более высокоуровневых и удобных средств;

  • библиотека OpenGL является на сегодняшний день одним из двух мировых стандартов на разработку трехмерной компьютерной графики. Появившаяся в начале 1990-х, она бурно развивается и не теряет своей актуальности и сегодня. Использование сочетания WinAPI и OpenGL может показаться несколько странным, так как OpenGL является кроссплатформенной библиотекой и представлена в таких операционных системах, как UNIX-системы, Mac OS, мобильные платформы. Совмещение кода OpenGL и WinAPI считается «плохим тоном», так как сводит к нулю все преимущества переносимости программ, которыми обладают программы OpenGL. Как правило, для обращения к ресурсам операционной системы используются какие-либо промежуточные кроссплатформенные библиотеки (например, GLUT), берущие на себя все вызовы API той или иной операционной системы. По этой причине в паре с WinAPI, как правило, используют не OpenGL, а библиотеку Microsoft DirectX, которая как раз ориентирована на работу в среде Windows. Однако применение в данной работе именно связки WinAPI и OpenGL оправдано как раз возможностью изучить особенности взаимодействия этих библиотек, инициализацию OpenGL в контексте API Windows, взаимодействие OpenGL с циклом обработки сообщений WinAPI, реакцию на события клавиатуры и мыши;

  • изучение любой библиотеки трехмерной графики (включая и OpenGL) требует хорошего знания векторной алгебры и матричного исчисления. То есть выполнение данной работы подразумевает закрепление знаний полученных в ходе изучения курса высшей математики, что тоже является несомненным подтверждением актуальности данной работы;

  • программирование WinAPI может осуществляться при помощи любого языка программирования, имеющего поддержку вызовов функций из динамически подключаемых библиотек формата Windows. Это и Object Pascal и Visual Basic и Assembler и множество других языков. Однако по рекомендации Microsoft, базовым языком разработки является C++. Выполнение данной работы позволит также закрепить знания языка C++. Вообще говоря, и WinAPI и OpenGL практически не используют объектное расширение языка C (в отличие от DirectX, например), но несмотря на это, некоторые особенности именно C++ будут использованы в данной работе.

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

Постановка задачи

  • Создать программу, эмулирующую поведение руки-манипулятора, которая

    • состоит из восьми сегментов шарнирного соединения, каждое из соединений имеет собственный привод, позволяющий осуществить поворот сегмента в месте соединения;

    • обеспечивает поступательное движение сегментов путем комбинации их вращательных движений.

    • реализует Вращение сцены мышью

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

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

Список управляющих клавиш приведен в таблице 1.

Таблица 1 – Список управляющих клавиш

Номер сегмента

Направление вращения

Клавиша

1

по часовой стрелке

a

1

против часовой стрелки

q

2

по часовой стрелке

s

2

против часовой стрелки

w

1

по часовой стрелке

d

1

против часовой стрелки

e

2

по часовой стрелке

f

2

против часовой стрелки

r

1

по часовой стрелке

g

1

против часовой стрелки

t

2

по часовой стрелке

h

2

против часовой стрелки

y

1

по часовой стрелке

j

1

против часовой стрелки

u

2

по часовой стрелке

k

2

против часовой стрелки

i

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

Программа должна представлять собой оконное приложение MS Windows без использования надстроек над WinAPI (таких, как MFC, VCL и другие).

Вывод графической информации в окно программы должен осуществляться с применением графической библиотеки OpenGL.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]