function Dvostruko_klatno(ivp, vreme, fps, movie) % ivp = [phi1; dtphi1; phi2; dtphi2; g; m1; m2; l1; l2] % vreme interval od 0 do vreme (sekunde) % fps broj frejmova u sekundi (odgovaraju realnoj situaciji) % movie ako je false => ne pravi film nframes = vreme * fps; sol = ode45(@Dvostruko_klatno_ODE,[0 vreme], ivp) t = linspace(0, vreme, nframes); y = deval(sol,t); phi1 = y(1,:)'; dtphi1 = y(2,:)'; phi2 = y(3,:)'; dtphi2 = y(4,:)'; l1 = ivp(8); l2 = ivp(9); figure(2); videoObj = VideoWriter('Dvostruko_klatno.avi'); open(videoObj); h = plot(0,0,'MarkerSize',30,'Marker','.','LineWidth',2); title('Dvostruko klatno'); range = 1.1*(l1+l2); axis([-range range -range range]); axis square; set(gca,'nextplot','replacechildren'); for i = 1 : length(phi1)-1 if (ishandle(h) == 1) Xcoord = [0,l1*sin(phi1(i)),l1*sin(phi1(i))+l2*sin(phi2(i))]; Ycoord = [0,-l1*cos(phi1(i)),-l1*cos(phi1(i))-l2*cos(phi2(i))]; set(h,'XData',Xcoord,'YData',Ycoord); drawnow; if movie == false pause(t(i+1)-t(i)); else writeVideo(videoObj, getframe); end end end close(videoObj); end