Волновые колебания мембраны
Принцип мультипликации легко распространить на существенно более сложные задачи анимации. В качестве иллюстрации можно рассмотреть системный пример vibes, демонстрирующий волнообразные колебания тонкой пластины — мембраны. Ниже представлен переработанный файл данного примера, в котором сокращены подробные комментарии на английском языке и введены только для пояснения комментарии на русском языке, их следует изъять при попытке запустить программу:
%Волновые колебания мембраны
%Переработка файла VIBES фирмы MathWorks. Inc.
if~exist('MovieGUIFlag'): figNumber=0; end;
hlpStr= ...
[' Это пример анимации - наблюдение колебаний '
' трехмерной поверхности - мембраны. ']:
mvinit(figNumber.hlpStr):
%
Загрузка данных функции
load vibesdat;
[n.n] = size(Ll):
nh = fix(n/2): .
x = (-nh:nh)/nh;
%
Вычисление коэффициентов
clear с
for k = 1:12.
eval(['c(k) = L' num2str(k) '(24,13)73:'])
end;
%
Установка графических параметров
axis([-11-11-11]); caxis(26.9*[-1.5 1]);
colormap(hot); hold on
%
Генерация кадров мультипликации
delt = 0.1;
nf names =12:
M - moviein(nf names):
fon k - l:nf names,
%
Коэффициенты
t = k*delt;
s = c.*sin(sqnt(1ambda)*t);
%
Амплитуды
L = s(l)*Ll + s(2)*L2 + s(3)*L3 + s(4)*L4 +
s(5)*L5 + s(6)*L6 + .
S(7)*L7 + s(8)*l_8 + s(9)*L9 + s(10)*L10 +
s(ll)*Lll + s(12)*L12;
%
Скорость мультипликации
s = s .* lambda;
V = s(l)*Ll + s(2)*L2 +'sC3)*L3 +
s(4)*L4 + s(5)*L5 + s(6)*L6 + ...
s(7)*L7 + s(8)*L8 + s(9)*L9 + s(10)*L10 +
s(11)*L11 + s(12)*L12;
%
График поверхности; цвет задается скоростью
V(l:nh.l:nh) = NaN*ones(nh,nh);
Cla
sunf(x.x.L.V);
axis off
%
Создание кадров мультипликации
M(:.k) - mvfname(f1gNumben,nfnames): end : hold off
%=======================================
%
Запись кадров мультипликации
mvstone( figNumben , M) ;
Этот пример дан с целью иллюстрации, и подробно эту программу мы описывать не будем. К сожалению, в представленном виде (с русскоязычными комментариями), данная программа MATLAB 6 неработоспособна. Чтобы она работала, эти комментарии должны быть убраны или заменены англоязычными. В этом случае проблем с запуском программы не будет.