1、drawnow指令 在MATLAB中drawnow指令的功能是暂停程序的执行并刷新图形窗口。可以利用这一功能与xdata,ydata,zdata等图形数据属性的修改,实现图形的效果。如:>> t=linspace(0,35,1000);y=sin(2*t).*exp(-t/5);h=plot(t,y);Warning: MATLAB has disabled some advanced graphics rendering features by switching to software OpenGL. For more information, click here.>> xlim([0,50]);>> for i=1:200x=i/20+t;set(h,'xdata',x);drawnowend
2、pause指令除了drawnow指筠沭鱿漆令的动画外,还可以利用pause指令与xdata,ydata,zdata等图形属性的修改相结合制作动画。如:>> t=linspace(0,2*pi,361);>> x=10*cos(t);>> y=10*sin(t);>> h=fill(x,y,'b');>> xlim([-12,12]);>> ylim([-12,12]);>> axis square>> hold on>> R=linspace(10,1,100);>> for i=1:100x=R(i)*cos(t);y=R(i)*sin(t);set(h,'xdata',x);set(h,'ydata',y);pause(0.1)end
3、rotate指令rotate指令是旋转功能,利用这一功能和pause指令相结合制作动画。如:时钟指针>> t=linspace(0,(2-1/6)*pi,12);>> x=6*cos(t);>> y=6*sin(t);>> h1=plot(x,y,'*r');>> axis equal>> xlim([-8,8]);>> ylim([-8,8]);>> hold on>> h2=plot([0,5.5],[0,0]);>> set(h2,'linewidth',4);>> while i<=269i=i+1;rotate(h2,[0,0,1],1)pause(0.1);end
4、movie指令MATLAB中提供了电影动画指令movie,利用该指令制作的动画成为电影动画。电影动画必须由很多图形帧连续播放,其制辑湃形傥作过程为:利用指令getframe获取当前图形的帧,通过指令movie按顺序回放获取的各帧。movie(M,n)%顺序播放帧矩阵中的各帧,你,为播放次数getframe%获取当前图形的帧。如:>> t=linspace(-15,15,1000);>> y=sin(4*t).*exp(cos(t));>> for i=1:201x=(i-1)/20+t;h=plot(x,y);xlim([-15,35]);ylim([-4,4])set(h,'color',rand(1,3));set(h,'linewidth',2);m(:,i)=getframeendmovie(m,1)