Effacer les filtres
Effacer les filtres

Animating a sine wave movie

23 vues (au cours des 30 derniers jours)
tyler brecht
tyler brecht le 23 Oct 2014
Commenté : Image Analyst le 12 Mai 2016
Hi guys I would like to know how to make a movie of a sine wave using handle graphics and for each frame a for loop with getframe
a = -1; z = 0:pi/1000:2*pi; y = a*sin(z)

Réponse acceptée

Image Analyst
Image Analyst le 23 Oct 2014
See my attached demo. Just change the surf() call to plot() and it should work.
  1 commentaire
tyler brecht
tyler brecht le 23 Oct 2014
Thanks a lot!

Connectez-vous pour commenter.

Plus de réponses (1)

Ced
Ced le 23 Oct 2014
Modifié(e) : Ced le 23 Oct 2014
Something like that? (reduced the number of frames)
clear all
clc
close all
a = -1;
z = 0:pi/100:2*pi;
y = a*sin(z);
Nz = length(z);
% Set up your plot environment
figure
h = plot(z(1),y(1));
xlim([z(1) z(end)])
ylim([min(y) max(y)])
xlabel('z')
ylabel('a*sin(z)')
legend('my sine function')
init_getframe = struct('cdata',[],'colormap',[]);
frames = repmat(init_getframe, Nz, 1 );
frames(1) = getframe;
% Get frames
for i = 2:Nz
set(h,'XData',z(1:i));
set(h,'YData',y(1:i));
drawnow
frames(i) = getframe;
end
% Play movie
movie(frames)
But from experience, I prefer to save each frame to a file (e.g. .png), and then combine the frames later into a movie.
*EDIT*: I was a bit too slow. Make sure to check out Image Analysts answer for some extra frame size settings etc.
  4 commentaires
BHANESH BHADRECHA
BHANESH BHADRECHA le 12 Mai 2016
What if i want to increase the speed of animation, i mean i want to show more data samples at a time.
please reply with an answer.
Image Analyst
Image Analyst le 12 Mai 2016
Set the framerate property of the video writer.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Animation dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by