Задачи:
11.06M
Categories: mathematicsmathematics programmingprogramming

Детская игра "Пирамидка"

1.

Курсовая работа по дисциплине «Компьютерная графика»
Кафедра «Прикладная математика»
Выполнила: Девятловская Яна Игоревна
Группа: ММ-453

2.

3. Задачи:

1) Разработать техническое задание;
2) Построить математическую модель;
3) Разработать алгоритм;
4) Выполнить программную реализацию
разработанного алгоритма.

4.

Математическая модель

5.

Y’
D3
D2
D1
D4
D0
O1
D5
M3
O0
M4
M0
M5
M6
X’
Z’
V=
D0 D1 D2 D3 D4 D5 D6 M0 M1 M2 M3 M4 M5 M6
O0 O1

6.

D3O1D2 D2O1D1 D1O1D0 D0O1D6
D6O1D5 D5O1D4 D4O1D3 M4M3D4
D4M3D3 M3D3M2 D3M2D2 M2D2M1
G=
D2M1D1 M1D1M0 D1L0D0 M0D0M6
D0M6D6 M6D6M5 D6M5D5 M5D5M4
D5M4D4 M3O0M2 M2O0M1 M1O0M0
M0O0M6 M6O0M5 M5O0M4 M4O0M3

7.

O0 = (x0, y0, z0);
O1 = (x0, y0+h, z0);
Mi = (x0+Ar*cos(αi), y0, z0+Ar*sin(αi));
Di = (x0+Br*cos(αi), y0+h, z0+Br*sin(αi));
α = 2π/24;
i – количество граней.

8.

Y’
X’
Z’
φ

9.

А0
А1
В0
В1

10.

A0 A1 A2… An B0 B1 B2…Bn …Y0 Y1 Y2… Yn Z0 Z1
Z2…Zn
V=
A0B0A1B1
A1B1A2B2
A2B2A3B3
……………………………………...............
G=
An-1Bn-1AnBn AnBnB0C0
B1C1B2C2
B0C0B1C1
Zn-1An-1ZnAn ZnAnA0B0

11.

Применяем сферическую систему координат
x=sin(ϴ)*r;//координаты вершины в пространстве
y=minorR*sin(φ);//координатывершины пространстве
z=cos(ϴ)*r; //координаты вершины в пространстве
φ = 2π*K;
K=j/N – количество витков
ϴ = 2*π*(i+K)/M – угол до конкретной точки
M – номер витка
r = majorR + minorR *cos(φ).

12.

1. Матрица переноса:
[T] =
1 0
0 1
0 0
x0 0
0
0
1
z0
0
0
0
1
2. Матрица поворота на угол α
относительно оси OY:
[RY] =
cos α 0 - sin α
0
1
0
sin α 0 cos α
0
0
0
0
0
0
1

13.

14.

15.

Начало
Определение окна, для
которого предназначено
сообщение Msg
Определить событие Do
соответствующее Msg
Да
Do = «Создано окно»?
Инициализация
приложения OpenGL
Нет
Настройка элементов
управления окна
Устанавливаем элементы
меню
Do = «Выбран пункт
меню «Начало новой
игры»»?
Да
Инициализация поля игры
Нет
Выбор уровня сложности
A0
A1

16.

A1
A0
Да
Do = «Нажата ЛКМ»?
Курсор мыши
указывает на
«Палитру торов» ?
Нет
Да
Да
Курсор мыши
указывает на тор?
Выделим соответствующий
тор в меню
Нет
Нажали на тор?
Создать деталь в начальной
точке
Да
Выделить соответствующий
тор
Послать сообщение о
перерисовке главного окна
Do = «Выбран пункт
«Уровни
сложности»»?
Да
Вызов диалогового окна
«Новая игра»
Нет
Перерисовка главного окна
A2
A3

17.

A2
Do = «Выбран
пункт меню
«Справка»»?
A3
Да
Выбран пункт меню
«Правила»
Нет
Да
Выбран пункт меню «О
программе»
Do = «Выбран
пункт меню
«Выход»»?
Да
Do = «Закрытие
приложения»?
Нет
Восстановление
параметров среды
Msg=0
Конец

18.

19.

Начало
Выбран пункт
«Новая игра»
Do = «Есть
игра»?
Отрисовать фон
Сортировка фигур
по глубине
Цикл пока
Figure ≠ 0
Есть еще
фигуры?
Нарисовать
фигуру
Конец цикла по
Figure
Конец
Были
изменены
координаты
dx,dy?
Перемещение
фигуры по осям
OX,OZ
Были
изменены
координаты
dy?
Перемещение
фигуры по оси OY

20.

21.

22.

23.

24.

25.

26.

27.

28.

29.

30.

31.

32.

33.

34.

35.

36.

37.

38.

39.

В ходе выполнения работы была разработана
математическая модель, построен алгоритм решения
и реализовано приложение «Пирамидка" на языке Си
с использованием OpenGL. Все задачи были
выполнены, поставленная цель достигнута.
English     Русский Rules