E N D
1. Animaes em MATLAB Luiz Gustavo Supriano
Roberto Basting Junior
3. Como plotar grficos Existem dois tipos de grficos em Matlab: grficos 2D e grficos 3D
Grficos 2D:
Plot: funo bsica para desenhar grficos em 2D
exemplo: plot(x,y)
onde: x a definio do intervalo que queremos plotar
y a funo que desejamos plotar
4. Como plotar grficos Grficos 3D:
Curvas:
plot3(x,y,t)
Superfcies:
surf(X,Y,Z) => superfcie preenchida
mesh(X,Y,Z) => malha
5. Animao Animao = seqncia de grficos plotados sobrepostos
Requisitos:
Saber o que se deseja animar
Descobrir as funes que sero utilizadas
Gerar uma matriz de posio
6. Animao Objetivos:
Melhor anlise de determinados fenmenos atravs de recursos visuais
Visualizao das iteraes de uma funo
Simulao de situaes reais
Criao de filmes quando os clculos exigem um tempo significativo e as imagens resultantes so bastantes complexas
7. Como animar? O Matlab possui funes especficas para criao de animaes (vdeos):
Avifile(nome_arquivo.avi') ? gera arquivo avi para salvar a animao
Close(ponteiro do arquivo) ? Fecha o arquivo de filme.
8. Como animar? Getframe ? retorna cada pixel da imagem para a varivel de frames ;
Addframe(ponteiro do arquivo,varivel de frames ) ? copia cada quadro do grfico plotado para o final do arquivo de vdeo;
Axis([xi xf yi yf zi zf]) ? Fixa o tamanho dos eixos das coordenadas;
9. Como animar? Movie(array_pixel) ? executa o filme
Movie(array_pixel,n) ? executa o filme n vezes
Aviread(nome_arquivo) ? l um arquivo de filme avi
10. Exemplos mov = avifile('animaao1.avi')
t = 0:pi/100:10*pi;
for i=0:1:50
plot3(sin(t+i).*cos(t+i),sin(t+i),t+i)
hold on
axis off
axis([-1 1 -1 1 0 100])
F=getframe
mov = addframe(mov,F);
end
mov=close(mov);
11. Exemplos video=avifile('trajetoria.avi')
s0=20; v0=15; a=2;
for i=1:5:100
y=s0+v0*i+(a*(i.^2))/2;
xlabel('tempo');
ylabel('espao');
plot(i,y,'bo');
hold on;
axis off;
F=getframe;
video=addframe(video,F);
end
video=close(video)
12. Exemplos m=avifile('superficie.avi')
x=-3:3;
y=1:5;
[X,Y]=meshgrid(x,y);
for i=-100:1
Z=((X+Y).^2)/2-(X.^3);
[X,Y,Z]=peaks(49)
surfl(X,Y,Z./i);
axis([-4 4 -5 5 -10 10])
axis off;
F=getframe;
m=addframe(m,F)
end
m=close(m)
13. Exemplos function exemplo=funcao(t,y)
B1=1; B2=1; B3=1; A1=1; A2=1;
exemplo = [y(2);(-(y(1)-y(3))/B1)/A1; y(4);(-(y(3)-y(5))/B2 - (y(1)-y(3))/B1)/A2; y(6); (-(y(5)/B3 - (y(3)-y(5))/B2))/A2; ];
m=avifile('teste5.avi')
yo = [0.1 0.1 0.1 0.1 0.1 0.1];
for tspan=1:0.05:10
[t,y] = ode45(@funcao,[0 tspan],yo);
plot(t,y(:,1));
f=getframe;
m=addframe(m,f)
end
m=close(m)
14. Exemplos function yprime=vdpol(t,y)
a=0.398; b=2; c=4;
yprime = [-(y(2)+y(3));y(1)+a.*y(2);
b+y(3).*(y(1)-c)];
m=avifile('teste2.avi');
yo = [0.1; 0.1; 0.1];
for tspan=1:5:1000
[t,y] = ode45(@vdpol,[0 tspan],yo);
plot(t,y(:,3));
f=getframe
m=addframe(m,f)
end
m=close(m)
15. Exemplos function yprime=vdpol(t,y)
a=0.398; b=2; c=4;
yprime = [-(y(2)+y(3));y(1)+a.*y(2);
b+y(3).*(y(1)-c)];
m=avifile('eod.avi');
yo = [0.1; 0.1; 0.1];
for t=1:5:1000
[t,y] = ode45(@vdpol,[0 t],yo);
plot(y(:,1),y(:,3));
f=getframe
m=addframe(m,f)
end
m=close(m);
16. Bibliografia MATLAB 6 : curso completo
Duane Hanselman, Bruce Littlefield
Traduo Cludia Sant'Ana Martins
Editora Prentice Hall, So Paulo 2003.
Amaro, R.; Takahagi, D. N. Seminrio: Animao em Matlab
Bovolenta, J. E.; Coyado, A. F. Seminrio: Matlab
17. Contato
Luiz Gustavo Supriano luizgustavo@supriano.com
Roberto Basting Junior basting_jr@yahoo.com.br
Universidade Estadual Paulista
Instituto de Geocincias e Cincias Exatas
Departamento de Estatstica, Matemtica Aplicada e Computao