Здавалка
Главная | Обратная связь

Побудова розрахункової анімації.



В загальному випадку, розрахункова анімація також являється покадровою, але її особливість заключається в тому, що кожен наступний кадр змінюється відповідного написаного алгоритму і вся анімація працює в межах певного циклу.

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

Нижче наведено приклад простої анімації «обертання фігури навколо крапки 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 скласти складну анімацію фігури: обертання навколо крапки, яка повинна рухатись за вказаною траєкторією. Для побудови фігури координати потрібно розрахувати відповідно до крапки обертання. Зробити відповідні висновки та оформити звіт.

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

Таблиця 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

Контрольні запитання

1. Що таке анімація?

2. Які існують методи побудови анімації?

3. Назвіть основні типи анімації?

4. Поясніть технологію побудови анімацію методом «покадрових рухів».

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

6. Що таке морфінг?

7. Що собою представляє розрахункова анімація?

8. Яка різниця між імітацією і анімацією?

9. Яким чином може бути побудована анімація в середовищі MATLAB?

10. Якими способами може задавить перетворення при побудові анімації?








©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.