Волновые
колебания мембраны
Принцип мультипликации
легко распространить на существенно более сложные задачи анимации. В качестве
иллюстрации можно рассмотреть системный пример 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 неработоспособна. Чтобы она работала, эти комментарии должны быть убраны или
заменены англоязычными. В этом случае проблем с запуском программы не будет.
Содержание раздела