Gráficos Animados em 2D - Matlab.
Atualizado: Fev 12
Quer fazer um gráfico com esse efeito de animação?
Figura 1. Exemplo 1 de gráficos animados em 2D.
Para plotarmos nosso gráfico precisamos criar 2 vetores. Para isso, digite no seu command window:
vetor01 = 0:0.05:5*pi;
vetor02 = sin (x);
Agora digite os seguintes comandos:
curva = animatedline; %esse comando permite criar o grafico animado
set(gca,'Xlim', [0 5*pi], 'YLim', [-1 1]); %controle das dimensoes do grafico
for i=1:length(vetor01)
addpoints(curva,vetor01(i),vetor02(i));
drawnow end
Voilà! Agora você tem uma figura animada igualzinha a Figura 1. Mas podemos deixar esse grafico mais bonito como na Figura 2.
Figura 2. Exemplo 2 de gráficos animados em 2D.
curva = animatedline ('marker','o',... %com esse comando voce define o estilo do marcador
'MarkerSize',10,... %com esse comando voce define o tamanho do marcador
'MarkerEdgeColor','y',... %com esse comando voce define a cor do contorno do marcador
'MarkerFaceColor','m'); %com esse comando voce define a cor interna do marcador
%Dica: substitua os comandos ( ) acima, pelos seguintes comandos 'color', 'k', 'LineStyle', ':', 'LineWidth', 3
set(gca,'Xlim', [0 5*pi], 'YLim', [-1 1]); %controle das dimensoes do grafico
grid on; % ativa grades do grafico
for i=1:length(vetor01)
addpoints(curva,vetor01(i),vetor02(i));
drawnow limitrate % aqui voce controla o tempo
pause(0.05) % o tempo de pausa entre cada marcador
end
Mais uma dica: podemos fazer uma bolinha animada percorrendo as curvas de um gráfico. Como na Figura 3. Seguem os comandos:
Figura 3. Exemplo 3 de gráficos animados em 2D.
i=1;
set(gcf,'color',[1 1 1]);
for t=0:1:720;
t1=0:1:720;
y=sind(t);
y1=sind(t1);
plot(t1,y1,'c', t,y,'o','MarkerSize', 10, 'MarkerFaceColor', 'm', 'MarkerEdgeColor', 'y', 'MarkerSize',20,'LineWidth', 3)
anim(i)=getframe; % é aqui que a animaçao acontece ;D
i=i+1; end
Agora o nosso último exemplo de hoje é a estrela (Figura 4).
Figura 4. Exemplo 4 de gráficos animados em 2D.
i=1;
set(gcf,'color',[1 1 1]);
for t=1:0.1:9; %aqui é o vetor para mover a estrela de baixo para cima.
y=t;
plot(y,'p','MarkerSize',10, 'MarkerSize', 40, 'MarkerFaceColor','y', 'MarkerEdgeColor','k','LineWidth', 2)
ylim([0,9]);
anim(i)=getframe(gcf);
i=i+1;
end
Gostou? Agora é com você! Divirta-se!
Referência
MATLAB. Curso Completo, por Claúdio Vieira e Vagner Morais.
MATLAB Para Leigos, por Jim Sizemore e John Mueller.