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

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

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

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

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

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

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

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

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