И другие программы этой серии
Она сводится к построению ряда кадров изображения, причем каждый кадр появляется на некоторое время, затем стирается и заменяется на новый кадр, несколько отличающийся от предшествующего. Если это отличие незначительно, то создается иллюзия плавного перемещения объекта.
Отметим кратко основные команды, реализующие анимацию в системе MATLAB:
• capture – захват видеоизображения;
• getframe – создание кадра для анимации;
• moviein – выполнение анимации;
• rotate – вращение фигуры;
• frame2im – преобразование кадра в графический образ;
• im2frame – преобразование графического образа в кадр. Применение некоторых из этих команд мы рассмотрим далее на конкретных
примерах.
7.1.4. Вращение фигуры – логотипа MATLAB
Рассмотрим вначале не очень сложный пример вращения сложной трехмерной поверхности – логотипа системы MATLAB, который представлен файлами logo.m и logo.mat. Ниже изображен фрагмент программы, обеспечивающий вращение этой поверхности (фигуры) относительно осей системы координат:
% Программа вращения логотипа системы MATLAB
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=1: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; mvstore(figNumber,m);
Эта программа имеет два блока: в первом задаются исходная функция и ее образ, а во втором (с циклом for) выполняются создание кадров и их последова-
тельное воспроизведение, создающее эффект анимации. На рис. 7.3 показан стоп-кадр полученной анимации.
Рис. 7.3. Стоп-кадр программы, обеспечивающей вращение фигуры – логотипа MATLAB
7.1.5. Волновые колебания мембраны
Принцип мультипликации легко распространить на существенно более сложные задачи анимации. В качестве иллюстрации можно рассмотреть системный пример vibes, демонстрирующий волнообразные колебания тонкой пластины – мембраны.
Начало в части 1