Você está na página 1de 11

Curso de

MATLAB®

Aula 9

EMMATI – Empresa Júnior de Matemática Industrial - UFPR


Introdução:
p O que é uma animação em Matlab?

É uma seqüência de imagens plotadas


sobrepostas, com uma velocidade limite
para se tornar seqüencial.
Como animar?
p 1) Saber o que será animado;

p 2) Buscar as funções que geram o gráfico;

p 3) Prever as posições em que o gráfico


percorrerá, gerando uma matriz de posições;

p 4) Através da matriz de posições, plotam-se


os gráfico de cada instante da animação, ou
seja, a cada iteração.
Objetivos:
p Observar com maior eficiência o
comportamento de uma função,
visualizando todos as suas iterações;

p Simular situações reais, para analisar os


aspectos dos experimentos, obtendo uma
melhor compreensão dos resultados, com o
auxílio da visualização
Funções de animação do Matlab:
p Avifile(‘nome_arquivo.avi') à gera arquivo avi para
salvar a animação

p Close(ponteiro do arquivo) à Fecha o arquivo de filme.

p Getframe à retorna cada pixel da imagem para a


variável de frames ;

p Addframe(ponteiro do arquivo,variável de frames ) à


copia cada quadro do gráfico plotado para o final do
arquivo de vídeo;
p Axis([xi xf yi yf zi zf]) à Fixa o
tamanho dos eixos das coordenadas;

p Moviein(n) à Determina que o filme


terá um número de quadros igual a n;

p Movie(nome_arquivo,n) à Executa o
filme selecionado n vezes seguidas.
Funções para plotar:
p plot(x1,y1,.....) à plota gráfico bidimensional

p plot3(x1,y1,z1,...)à plota gráfico tridimensional

p line(x,y)àgera linha definida nos vetores x e y


para a escala definida com o comando axis

p line(x,y,z)àgera linha com coordenadas em três


dimensões
p mesh(x,y,z)à gera gráfico de superfície
na forma de uma rede

p surfl(x,y,z)à gera gráfico de superfície


com um mapa de cores
Exemplo
A = avifile('Animacao2.avi')

x = [ 0.7071 0 -0.7071 -1 -0.7071 0 0.7071 1 ];


y = [ 0.7071 1 0.7071 0 -0.7071 -1 -0.7071 0 ];
n=length(x);

for i=1:length(x)
xa = [ 0, x(i) ];
ya = [ 0, y(i) ];
plot(xa(2),ya(2),'bo')
line(xa,ya)’
axis([-2 2 -2 2])
axis off
F=getframe;
A = addframe(A,F);
end
A=close(A);
Exemplo com função seno e cosseno
mov = avifile('animaçao3.avi')
t = 0:pi/100:10*pi;
for i=0:1:50
plot3(sin(t+i),cos(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);
Animação de Superfície
m=avifile('superficie.avi')
x=-3:3;
y=1:5;
[X,Y]=meshgrid(x,y);
for i=-100:1
Z=((X+Y).^2);
[X,Y,Z]=peaks(20)
surfl(X,Y,Z./i);
axis([-4 4 -5 5 -10 10])
axis off;
F=getframe;
m=addframe(m,F)
end
m=close(m)