MATLAB的动画功能
来源:网络收集 点击: 时间:2024-08-10drawnow指令
在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();
for i=1:200
x=i/20+t;
set(h,xdata,x);
drawnow
end

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();
ylim();
axis square
hold on
R=linspace(10,1,100);
for i=1:100
x=R(i)*cos(t);
y=R(i)*sin(t);
set(h,xdata,x);
set(h,ydata,y);
pause(0.1)
end

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();
ylim();
hold on
h2=plot(,);
set(h2,linewidth,4);
while i=269
i=i+1;
rotate(h2,,1)
pause(0.1);
end

movie指令
MATLAB中提供了电影动画指令movie,利用该指令制作的动画成为电影动画。电影动画必须由很多图形帧连续播放,其制作过程为:利用指令getframe获取当前图形的帧,通过指令movie按顺序回放获取的各帧。
movie(M,n)%顺序播放帧矩阵中的各帧,你,为播放次数
getframe%获取当前图形的帧。
如:
t=linspace(-15,15,1000);
y=sin(4*t).*exp(cos(t));
for i=1:201
x=(i-1)/20+t;
h=plot(x,y);
xlim();
ylim()
set(h,color,rand(1,3));
set(h,linewidth,2);
m(:,i)=getframe
end
movie(m,1)

版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_1104350.html