- •Комп’ютерна графіка
- •Опис практичного курсу дисципліни
- •Практична робота №1 Перетворення в двомірному просторі
- •Опис програмного продукту
- •Інформаційна частина
- •Практична частина
- •Завдання
- •Варіанти завдання
- •Контрольні запитання
- •Практична робота №2 Побудова розрахункової покадрової анімації у двомірному просторі
- •Інформаційна частина
- •Практична частина
- •Завдання
- •Варіанти завдання
- •Контрольні запитання
- •Практична робота №3 Перетворення у тривимірному просторі
- •Інформаційна частина
- •Практична частина
- •Завдання
- •Варіанти завдання
- •Контрольні запитання
- •Практична робота №4 Побудова розрахункової покадрової анімації у тривимірному просторі
- •Інформаційна частина
- •Практична частина
- •Завдання
- •Варіанти завдання
- •Контрольні запитання
- •Список рекомендованої літератури та Інтернет ресурсів
- •Для нотаток
Практична частина
Завданням на практичну роботу являється побудова розрахункової анімації відповідно до першого кадру (фрейму), або вихідного зображення за вказаним завданням у двомірному просторі. У завданні задається яким чином має проходити зміна положення або форми об’єкта по відношенню до початкового зображення фігури.
Практична частина роботи повинна включати лістинг програмного модуля та результат виконання практичного завдання з попередньо записаною умовою.
Побудова розрахункової анімації.
В загальному випадку, розрахункова анімація також являється покадровою, але її особливість заключається в тому, що кожен наступний кадр змінюється відповідного написаного алгоритму і вся анімація працює в межах певного циклу.
Для розуміння самої сутності анімації, необхідно знати поняття циклів та затримок, що вони реалізовують і яким чином описуються. Математичний апарат будь-якого програмного продукту для створення анімацій чи імітацій руху є подібним і реалізовується за відповідними алгоритмами, відмінність заключається лише в обмеженнях фізико-хімічної природи об’єктів чи процесів які моделюються.
Нижче наведено приклад простої анімації «обертання фігури навколо крапки N(n, m) на заданий кут α».
Приклад:
Задамо трикутник трьома точками із координатами А(5,4), В(4,6), С(6,5). Побудуємо анімацію даної фігури навколо крапки О(4,4) по повному колу. Щоб зімітувати обертання фігури навколо крапки по колу, потрібно задати кут повороту α = 360º. Для цього складемо матрицю початкової фігури за вказаними координатами, потім побудуємо матрицю перетворення (повороту), попередньо перевівши значення кута з градусів у радіани.
Зауважимо, що для виконання перетворень координати повинні бути переведені до однорідних.
Для того щоб побудувати анімацію, складемо цикл зміни кута з певним кроком і після перетворення, перед виводом зображення реалізуємо затримку, за допомогою функції pause(n). Перед тим, щоб відобразити наступну, перетворену, фігуру очистимо область відображення моделі від попереднього зображення, за допомогою функції clf.
Команда (функція) pause(n) – дає змогу реалізувати затримку в часі відповідно до зміни часу середовища моделювання з точністю до 1 мс.
Синтаксис:
A=[4,1];
B=[4,6];
C=[6,5];
ABCA=[A;B;C;A];
i=1:4;
X=ABCA(i,1);
Y=ABCA(i,2);
for i=0:1:360
a=degtorad(i);
m=4;
n=4;
ABCo=[A,1;B,1;C,1];
mp=[cos(a),sin(a),0;-sin(a),cos(a),0;-m*(cos(a)-1)+n*sin(a),-n*(cos(a)-1)-m*sin(a),1];
i=1:3;
ABCp=ABCo*mp;
Xp=ABCp(i,1);
Yp=ABCp(i,2);
fill(Xp,Yp,'g')
grid on
xlim([0,8]);
ylim([0,8]);
pause(0.01);
clf;
end;
Рис. 2.1. Фрагмент анімації – один кадр (фрейм), кут повороту ≈ 180º
Завдання
Відповідно до свого спискового номера, журналу академгрупи, вибрати варіант нижче описаного завдання. Для виконання даного завдання, за даними таблиці 2.1 скласти складну анімацію фігури: обертання навколо крапки, яка повинна рухатись за вказаною траєкторією. Для побудови фігури координати потрібно розрахувати відповідно до крапки обертання. Зробити відповідні висновки та оформити звіт.