Pendulum Waves Animation in MATLAB
The Pendulum Waves video is awesome and the system has been simulated in Mathematica (twice), Maple and probably every other programming language by now. During a bout of insomnia I used the Mathematica code written by Matt Henderson as inspiration and made a simple MATLAB version. Here’s the video
Here’s the code.
freqs = 5:15; num = numel(freqs); lengths = 1./sqrt(freqs); piover6 = pi/6; figure axis([-0.3 0.3 -0.5 0]); axis off; org=zeros(size(freqs)); xpos=zeros(size(freqs)); ypos=zeros(size(freqs)); pendula = line([org;org],[org;org],'LineWidth',1,'Marker','.','MarkerSize',25 ... ,'Color',[0 0 0],'visible','off' ); % Open the avi file vidObj = VideoWriter('pendula_wave.avi'); open(vidObj); count =0; for t=0:0.001:1 count=count+1; omegas = 2*pi*freqs*t; xpos = sin(piover6*cos(omegas)).*lengths; ypos = -cos(piover6*cos(omegas)).*lengths; for i=1:num set(pendula(i),'visible','on'); set(pendula(i),'XData',[0 xpos(i)]); set(pendula(i),'YData',[0 ypos(i)]); drawnow end currFrame = getframe; writeVideo(vidObj,currFrame) F(i) = getframe; end % Close the file. close(vidObj);
Nice!
One annoying thing since writing my code though is that it should be length = 1/freq^2
I didn’t rearrange the formula for lengths and frequencies correctly. Still makes a cool animation.
M
Because everyone is doing them, I also did one:
http://shuisman.com/?p=1370
very nice it is too. Cheers Sander
??? Undefined function or method ‘VideoWriter’ for input arguments of type ‘char’.
Error in ==> Untitled5 at 16
vidObj = VideoWriter(‘pendula_wave.avi’);
what could be??
What version of MATLAB are you using?
MATLAB R2009a
That explains it then. The VideoWriter function was introduced in 2010b
thanks
i want to save my movie as ‘avi’ file, i working with R2009a too. How do I do that?
I wrote :”myVideo = VideoWriter(‘C:\….\palletmapping.avi’);”
And I received an error notice:
??? Undefined function or method ‘VideoWriter’ for input arguments of type ‘char’.
thanks!!
would this work for python?
Im having problem in line 11 pendula=line….
Any one plz guide me