代码如下,已添加注释,就不再细说明了
clear;
clc;
[x,y]=meshgrid(-8:.1:8); %网格坐标
for j=1:10
f=@(x,y)(sin(sqrt((11-j)*(x.^2+y.^2)))./sqrt((11-j)*(x.^2+y.^2)+eps)); %z函数
z=f(x,y);
surf(x,y,z);%绘制三维曲面
shading interp; %设置颜色属性
M(j) = getframe; %获取影片帧
if j==1
[I,map]=rgb2ind(M(j).cdata,256); %RGB图像转索引图像
imwrite(I,map,'out.gif','DelayTime',.1,'LoopCount',Inf) %gif图像无限循环
else
[I,map]=rgb2ind(M(j).cdata,256);
imwrite(I,map,'out.gif','WriteMode','append','DelayTime',0.1) %添加到图像
end
end
%movie2avi(M,'out.avi')
v = VideoWriter('out.avi');%创建视频输出对象
v.open();%打开视频输出
v.writeVideo(M);%写视频
v.close();%关闭视频输出
截取其中一帧如下: