Animating a sine wave movie
23 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
tyler brecht
il 23 Ott 2014
Commentato: Image Analyst
il 12 Mag 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)
0 Commenti
Risposta accettata
Image Analyst
il 23 Ott 2014
See my attached demo. Just change the surf() call to plot() and it should work.
Più risposte (1)
Ced
il 23 Ott 2014
Modificato: Ced
il 23 Ott 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 Commenti
BHANESH BHADRECHA
il 12 Mag 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.
Vedere anche
Categorie
Scopri di più su Animation in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!