Матричная лаборатория MatLab

         

Волновые колебания мембраны

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

 

Содержание раздела