- •Комп’ютерна графіка
- •Опис практичного курсу дисципліни
- •Практична робота №1 Перетворення в двомірному просторі
- •Опис програмного продукту
- •Інформаційна частина
- •Практична частина
- •Завдання
- •Варіанти завдання
- •Контрольні запитання
- •Практична робота №2 Побудова розрахункової покадрової анімації у двомірному просторі
- •Інформаційна частина
- •Практична частина
- •Завдання
- •Варіанти завдання
- •Контрольні запитання
- •Практична робота №3 Перетворення у тривимірному просторі
- •Інформаційна частина
- •Практична частина
- •Завдання
- •Варіанти завдання
- •Контрольні запитання
- •Практична робота №4 Побудова розрахункової покадрової анімації у тривимірному просторі
- •Інформаційна частина
- •Практична частина
- •Завдання
- •Варіанти завдання
- •Контрольні запитання
- •Список рекомендованої літератури та Інтернет ресурсів
- •Для нотаток
Практична частина
Завданням на практичну роботу являється побудова розрахункової анімації за вказаним завданням у тривимірному просторі. У завданні задається яким чином має проходити зміна положення або форми об’єкта по відношенню до початкового зображення фігури.
Практична частина роботи повинна включати лістинг програмного модуля та результат виконання практичного завдання з попередньо записаною умовою.
Нижче наведено приклад простої анімації у тривимірному просторі «обертання фігури навколо крапки О(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 |