Matlab_制作动画幻灯片
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
为nframes帧幅图分配足够内存空间
movie(n)
以每秒n幅的速度播放动画
getframe
对当前的图象进行快照,截取一幅画面信息(称为动画中 的一帧),一幅画面信息形成一个很大的列向量
meshgrid:用于产生x-y平面上的网格数据 mesh:绘制网面图
4
函数及功能
imwrite():将数据转换成图像文件 surf:画立体曲面图 peaks:生成一个凹凸有致的曲面 figure:创建一个数字图形图像
13
其它转换gif动画的方法
直接作gif动画的软件较多,比如Ulead GIF Animator,批量格式转换用XnView
14
其它动画示例程序
Z = peaks; surf(Z) axis tight set(gca,'nextplot','replacechildren'); for j = 1:50
5
保存动画-生成avi格式的电影文件
创建电影剪辑文件,并存储起来:
aviobj=avifile('文件名.avi','fps',3);%定义一个avi文件, %AVIOBJ = AVIFILE(FILENAME,'PropertyName',VALUE,'Property Name',VALUE,...)%各属性详细说明见matlab帮助
直接利用函数movie2avi
movie2avi(mov,’filename.avi’) mov由getframe获得,生成文件名为filename.avi的视频文
件
一般格式:
for i=1:n figure(i) F(i)=getframe; end; movie2avi(F,'...filename.avi')
y = sin(3*x+0.006*j); set(h,'ydata',y); drawnow; end
10
播放动画
二维动画
s =0.2; x1=0; % 确定起始点横坐标x1及其增量 nframes = 50; % 确定动画总帧数 for k = 1:nframes x1= x1+s; % 确定画图时横坐标终止值x1 x =0:0.01:x1; y =sin(x); plot(x,y); % 在x=[0 x1]作y=sin(x)曲线 axis([0 2*pi -1 1]) % 定义坐标轴范围 grid off % 不显示网格线 M(k) = getframe; % 将当前图形存入矩阵M(k) end movie(M,3) % 重复3次播放动画M
movie2avi(m,’out.avi’)
12
保存动画的示例2
function avimake
warning off;
load data
//data是已有的文件
[M,N,K]=size(data);
data=data/(max(abs(data(:))));
aviobj = avifile('mymovie.avi','fps',10);
7
保存动画-直接保存gif动画
一般步骤:
m(:,k)=getframe; %%%构造gif图像的帧, nn(:,:,:)=getframe; %%转换为可以直接输出的格式 %如果要制作彩色的图像,你只能把生成的彩色图像单独 制作(使用其他软件) nn1=nn.cdata; nn1=rgb2gray(nn1); imwrite(nn1,'out.gif','gif','WriteMode','append')
8
画sinx,cosx图形 二维动画 三维动画
9
画sinx,cosx图形
x=[0:0.5:360]*pi/180;plot(x,sin(x),x,cos(x))
二维动画
x = -pi:pi/30:pi; h=
plot(x,cos(x),'o','MarkerEdgeColor','k','MarkerFaceColor','r',' MarkerSize',8,'EraseMode','Xor') for j = 1:3000
aviobj = avifile(filename,'PropertyName',value,...)
AVIFILE returns a handle to an AVI file object, aviobj.
mov = aviread(filename,index)
reads the AVI movie filename into the MATLAB movie structure mov
for kk=1:10:K
imagesc(data(:,:,kk));
set(gca,'clim',[-1 1]);
colormap(hsv(128))
frame = getframe(gca);
aviobj = addframe(aviobj,frame);
end
aviobj = close(aviobj);
for i=1:n %在当前窗体上生成一帧图像 frame=getframe(gca); %获得一帧图像 aviobj=addframe(aviobj,frame);%并加到电影剪辑文件中 end aviobj=close(aviobj);%关闭文件,结束数值仿真模拟过程。
6
保存动画-生成avi格式的电影文件
11
保存动画的示例1
三维动画
[x,y,z]=peaks(30); %peaks产生一个凹凸有致的曲面 surf(x,y,z) %用X和Y定义x-y坐标网格,Z定义网格上每一点的高度,来生成三维曲面 axis([-3 3 -3 3 -10 10]) m=moviein(15); for i=1:15 view(-37.5+24*(i-1),30) m(:,i)=getframe; end movie(m)
Matlab 制作动画
1
涉及的主要问题
一般步骤 使用的主要函数及功能 示例程序及运行结果 存在的问题
2
一百度文库步骤:
确定动画的帧数nframes 画出图形 为nframes帧幅图形分配足够内存空间 用getframe生成动画的数据矩阵 以每秒n幅的速度播放动画
3
函数及功能
M=moviein(nframes)
movie(n)
以每秒n幅的速度播放动画
getframe
对当前的图象进行快照,截取一幅画面信息(称为动画中 的一帧),一幅画面信息形成一个很大的列向量
meshgrid:用于产生x-y平面上的网格数据 mesh:绘制网面图
4
函数及功能
imwrite():将数据转换成图像文件 surf:画立体曲面图 peaks:生成一个凹凸有致的曲面 figure:创建一个数字图形图像
13
其它转换gif动画的方法
直接作gif动画的软件较多,比如Ulead GIF Animator,批量格式转换用XnView
14
其它动画示例程序
Z = peaks; surf(Z) axis tight set(gca,'nextplot','replacechildren'); for j = 1:50
5
保存动画-生成avi格式的电影文件
创建电影剪辑文件,并存储起来:
aviobj=avifile('文件名.avi','fps',3);%定义一个avi文件, %AVIOBJ = AVIFILE(FILENAME,'PropertyName',VALUE,'Property Name',VALUE,...)%各属性详细说明见matlab帮助
直接利用函数movie2avi
movie2avi(mov,’filename.avi’) mov由getframe获得,生成文件名为filename.avi的视频文
件
一般格式:
for i=1:n figure(i) F(i)=getframe; end; movie2avi(F,'...filename.avi')
y = sin(3*x+0.006*j); set(h,'ydata',y); drawnow; end
10
播放动画
二维动画
s =0.2; x1=0; % 确定起始点横坐标x1及其增量 nframes = 50; % 确定动画总帧数 for k = 1:nframes x1= x1+s; % 确定画图时横坐标终止值x1 x =0:0.01:x1; y =sin(x); plot(x,y); % 在x=[0 x1]作y=sin(x)曲线 axis([0 2*pi -1 1]) % 定义坐标轴范围 grid off % 不显示网格线 M(k) = getframe; % 将当前图形存入矩阵M(k) end movie(M,3) % 重复3次播放动画M
movie2avi(m,’out.avi’)
12
保存动画的示例2
function avimake
warning off;
load data
//data是已有的文件
[M,N,K]=size(data);
data=data/(max(abs(data(:))));
aviobj = avifile('mymovie.avi','fps',10);
7
保存动画-直接保存gif动画
一般步骤:
m(:,k)=getframe; %%%构造gif图像的帧, nn(:,:,:)=getframe; %%转换为可以直接输出的格式 %如果要制作彩色的图像,你只能把生成的彩色图像单独 制作(使用其他软件) nn1=nn.cdata; nn1=rgb2gray(nn1); imwrite(nn1,'out.gif','gif','WriteMode','append')
8
画sinx,cosx图形 二维动画 三维动画
9
画sinx,cosx图形
x=[0:0.5:360]*pi/180;plot(x,sin(x),x,cos(x))
二维动画
x = -pi:pi/30:pi; h=
plot(x,cos(x),'o','MarkerEdgeColor','k','MarkerFaceColor','r',' MarkerSize',8,'EraseMode','Xor') for j = 1:3000
aviobj = avifile(filename,'PropertyName',value,...)
AVIFILE returns a handle to an AVI file object, aviobj.
mov = aviread(filename,index)
reads the AVI movie filename into the MATLAB movie structure mov
for kk=1:10:K
imagesc(data(:,:,kk));
set(gca,'clim',[-1 1]);
colormap(hsv(128))
frame = getframe(gca);
aviobj = addframe(aviobj,frame);
end
aviobj = close(aviobj);
for i=1:n %在当前窗体上生成一帧图像 frame=getframe(gca); %获得一帧图像 aviobj=addframe(aviobj,frame);%并加到电影剪辑文件中 end aviobj=close(aviobj);%关闭文件,结束数值仿真模拟过程。
6
保存动画-生成avi格式的电影文件
11
保存动画的示例1
三维动画
[x,y,z]=peaks(30); %peaks产生一个凹凸有致的曲面 surf(x,y,z) %用X和Y定义x-y坐标网格,Z定义网格上每一点的高度,来生成三维曲面 axis([-3 3 -3 3 -10 10]) m=moviein(15); for i=1:15 view(-37.5+24*(i-1),30) m(:,i)=getframe; end movie(m)
Matlab 制作动画
1
涉及的主要问题
一般步骤 使用的主要函数及功能 示例程序及运行结果 存在的问题
2
一百度文库步骤:
确定动画的帧数nframes 画出图形 为nframes帧幅图形分配足够内存空间 用getframe生成动画的数据矩阵 以每秒n幅的速度播放动画
3
函数及功能
M=moviein(nframes)