Gráficos Animados em 3D - Matlab

Atualizado: Fev 12

Agora você vai aprender os comandos para fazer a animação de um espiral 3D , como na Figura 1.


Figura 1. Exemplo 1 de graficos animados em 3D.


Primeiro devemos criar 3 vetores. Para isso, digite no seu command window:


z = 0:0.05:10;

y = sin(2*z);

x = cos(2*z);


Agora digite os seguintes comandos:


curve = animatedline('LineWidth',5); %aqui começa o comando da animaçao, e voce também pode definir a espessura da linha do espiral.

set(gca,'XLim',[-1.5 1.5], 'YLim', [-1.5 1.5], 'ZLim', [0 10]); %aqui definimos os tamanhos das axes.

view(43,24); %aqui definimos o plano para visualizaçao do grafico. Para conseguir os numeros 43 e 24, voce deve primeiro plotar o grafico em 3D (ele vai parecer um circulo preto), depois clique sobre o grafico e inicie a movimenta-lo até encontrar a melhor posiçao para visualiza-lo. Note, os numeros dessa posiçao irao aparecer no canto esquerdo inferior do grafico.

grid on; %insere as grades no grafico.

hold on; %comando para plotar 2 vetores no mesmo grafico.

title ('ESPIRAL','FontSize',16)

ylabel('MOVA Y','FontSize',12)

xlabel('MOVA X','FontSize',12)

zlabel('MOVA Z','FontSize',12)

for i=1:length(z)

addpoints(curve,x(i),y(i),z(i)); %comando espiral animado

head=scatter3(x(i),y(i),z(i),'filled','MarkerFaceColor','m','MarkerEdgeColor', 'm','LineWidth', 10); %comando cabeça do espiral

drawnow

pause(0.01); %tempo entre cada frame da animaçao

delete(head); %aqui deleta a cauda da cabeça do espiral dando o efeito da "bolinha"

end


Vamos salvar o gráfico em .AVI? Inclua os seguintes comandos na sua função:


curve = animatedline('LineWidth',5);

set(gca,'XLim',[-1.5 1.5], 'YLim', [-1.5 1.5], 'ZLim', [0 10]);

view(43,24);

grid on;

hold on;

title ('ESPIRAL','FontSize',16)

ylabel('MOVA Y','FontSize',12)

xlabel('MOVA X','FontSize',12)

zlabel('MOVA Z','FontSize',12)

for i=1:length(z)

addpoints(curve,x(i),y(i),z(i));

head=scatter3(x(i),y(i),z(i),'filled','MarkerFaceColor','m','MarkerEdgeColor', 'm','LineWidth', 10);

drawnow

F(i) = getframe(gcf);

pause(0.01);

delete(head);

end

video = VideoWriter('espiral.avi', 'Uncompressed AVI');

open(video)

writeVideo(video, F);

close(video)


Referência


MATLAB. Curso Completo, por Claúdio Vieira e Vagner Morais.

MATLAB Para Leigos, por Jim Sizemore e John Mueller.

9 visualizações0 comentário

Posts recentes

Ver tudo