Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
met_graph_pract_1.doc
Скачиваний:
11
Добавлен:
16.02.2016
Размер:
557.06 Кб
Скачать

Практична частина

Завданням на практичну роботу являється побудова розрахункової анімації за вказаним завданням у тривимірному просторі. У завданні задається яким чином має проходити зміна положення або форми об’єкта по відношенню до початкового зображення фігури.

Практична частина роботи повинна включати лістинг програмного модуля та результат виконання практичного завдання з попередньо записаною умовою.

Нижче наведено приклад простої анімації у тривимірному просторі «обертання фігури навколо крапки О(n, m)».

Приклад:

Задамо куб вісьма точками та побудуємо анімацію даної фігури навколо крапки О(3,3,1) по повному колу, тобто на кут α = 360º. Для цього складемо матрицю початкової фігури за вказаними координатами, потім побудуємо матрицю перетворення (повороту), попередньо перевівши значення кута з градусів у радіани. Зміну значення кута α з кроком в 1º запишемо як цикл, в який включимо всі наші перетворення. В кінці циклу вкажемо час затримки та очищення робочого простору моделі.

Синтаксис:

A1=[2,4,1];

B1=[4,4,1];

C1=[4,2,1];

D1=[2,2,1];

A2=[2,4,3];

B2=[4,4,3];

C2=[4,2,3];

D2=[2,2,3];

A1B1C1D1A1=[A1;B1;C1;D1;A1];

A2B2C2D2A2=[A2;B2;C2;D2;A2];

A1B1B2A2=[A1;B1;B2;A2;A1];

D1C1C2D2=[D1;C1;C2;D2;D1];

A1D1D2A2=[A1;D1;D2;A2;A1];

for j=0:360

m=3;

n=3;

k=1;

a=degtorad(j);

A1B1C1D1A1o=[A1,1;B1,1;C1,1;D1,1];

A2B2C2D2A2o=[A2,1;B2,1;C2,1;D2,1];

A1B1B2A2o=[A1,1;B1,1;B2,1;A2,1];

D1C1C2D2o=[D1,1;C1,1;C2,1;D2,1];

A1D1D2A2o=[A1,1;D1,1;D2,1;A2,1];

mp1=[1,0,0,0;0,1,0,0;0,0,1,0;-m,-n,-k,1];

mp2=[1,0,0,0;0,1,0,0;0,0,1,0;m,n,k,1];

Ra=[1,0,0,0;0,cos(a),sin(a),0;0,-sin(a),cos(a),0;0,0,0,1];

A1B1C1D1A1p=A1B1C1D1A1o*mp1*Ra*mp2;

A2B2C2D2A2p=A2B2C2D2A2o*mp1*Ra*mp2;

A1B1B2A2p=A1B1B2A2o*mp1*Ra*mp2;

D1C1C2D2p=D1C1C2D2o*mp1*Ra*mp2;

A1D1D2A2p=A1D1D2A2o*mp1*Ra*mp2;

i=1:4;

Xo=ones(4,4);

Yo=ones(4,4);

Zo=ones(4,4);

Xo(i,1)=A1B1C1D1A1p(i,1);

Yo(i,1)=A1B1C1D1A1p(i,2);

Zo(i,1)=A1B1C1D1A1p(i,3);

Xo(i,2)=A2B2C2D2A2p(i,1);

Yo(i,2)=A2B2C2D2A2p(i,2);

Zo(i,2)=A2B2C2D2A2p(i,3);

Xo(i,3)=A1B1B2A2p(i,1);

Yo(i,3)=A1B1B2A2p(i,2);

Zo(i,3)=A1B1B2A2p(i,3);

Xo(i,4)=D1C1C2D2p(i,1);

Yo(i,4)=D1C1C2D2p(i,2);

Zo(i,4)=D1C1C2D2p(i,3);

Xo(i,5)=A1D1D2A2p(i,1);

Yo(i,5)=A1D1D2A2p(i,2);

Zo(i,5)=A1D1D2A2p(i,3);

fill3(Xo,Yo,Zo,'g','LineWidth',1)

grid on;

xlim([0;6])

ylim([0;6])

zlim([0;4])

pause(0.01);

clf;

end;

Рис. 4.1. Фрагмент анімації – один кадр (фрейм), кут повороту ≈ 240º

Завдання

Відповідно до свого спискового номера, журналу академгрупи, вибрати варіант нижче описаного завдання. Для виконання даного завдання, за даними таблиці 4.1 скласти складну анімацію фігури у тривимірному просторі: обертання навколо крапки в середині фігури, яка повинна рухатись за вказаною траєкторією. Для побудови фігури координати потрібно розрахувати відповідно до крапки обертання. Зробити відповідні висновки та оформити звіт.

Варіанти завдання

Таблиця 2.1

Параметри завдання для практичного виконання

п/п

Фігура

Параметри траєкторії руху крапки

1.

Піраміда

x = 1:0.1:6

2.

Куб

x = 1:0.2:6

3.

Призма

x = 1:0.1:5

4.

Тетраедр

x = 1:0.1:6

5.

Піраміда

x = 1:0.1:7

6.

Куб

x = 1:0.2:8

7.

Призма

x = 1:0.1:6

8.

Тетраедр

x = 1:0.1:5

9.

Піраміда

x = 1:0.2:6

10.

Куб

x = 1:0.1:7

11.

Призма

x = 1:0.1:8

12.

Тетраедр

x = 1:0.2:6

13.

Піраміда

x = 1:0.1:5

14.

Куб

x = 1:0.1:6

15.

Призма

x = 1:0.1:7

16.

Тетраедр

x = 1:0.2:8

17.

Піраміда

x = 1:0.1:6

18..

Куб

x = 1:0.1:5

19.

Призма

x = 1:0.2:6

20.

Тетраедр

x = 1:0.1:7

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