Основные средства анимации. Вращение фигуры – логотипа MATLAB.
Для более сложных случаев анимации возможно применение техники мультипликации. Она сводится к построению ряда кадров изображения, причем каждый кадр появляется на некоторое время, затем стирается и заменяется на новый кадр, несколько отличающийся от предшествующего. Если это отличие незначительно, то создается иллюзия плавного перемещения объекта.
Отметим кратко основные команды, реализующие анимацию в системе MATLAB:
- capture – захват видеоизображения;
- getframe – создание кадра для анимации;
- moviein – выполнение анимации;
- rotate – вращение фигуры;
- frame2im – преобразование кадра в графический образ;
- im2frame – преобразование графического образа в кадр.
Применение некоторых из этих команд мы рассмотрим далее на конкретных примерах. К сожалению, серьезные задачи анимации обычно требуют применения программных средств – главным образом циклов. Мы рассмотрим их далее, но представляется, что читатели знакомы с понятием циклов, так что приведенные примеры не будут слишком сложны. В крайнем случае, оставьте их разбор до знакомства с основами программирования в системе MATLAB (урок 20).
Вращение фигуры – логотипа MATLAB
Рассмотрим вначале не очень сложный пример вращения сложной трехмерной поверхности – логотипа системы MATLAB, который представлен файлами logo.m и logo.mat. Ниже представлен фрагмент программы, обеспечивающий вращение этой поверхности (фигуры) относительно осей системы координат:
if
~exist(
'MovieGUIFlag'
) .figNumber
=
0
;
end
;
load logo
h
=
surfl(L.source);
colormap(M);
ax
=
[
7
52
7
52
-
.
5.8
]:
axis(ax);
axis
on
:
shading interp;
m
=
moviein(
25
):
for
n
=
l:
25
.
rotate(h.[
0
90
],
15
.[
21
21
0
]);
h
=
surfl(get(h.
'XData'
),get(h.
'YData'
).
get(h.
'ZData'
),source);
axis(ax);
axis
on
;
shading interp;
m(:,n)
=
mvframe(figNumber,
24
);
end
;
mvstoretfigNumber.m);
Эта программа имеет два блока: в первом задается исходная функция и ее образ, а во втором (с циклом for) выполняется создание кадров и их последовательное воспроизведение, создающее эффект анимации. На рис. 7.3 показан стоп-кадр полученной анимации.
Рис. 7.3. Стоп-кадр программы, обеспечивающей вращение фигуры – логотипа MATLAB