MATLAB 动画图 作动态图
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB技术论
坛
电子期刊
编辑:
xiezhh
制作:
MATLAB技术论坛
版权:
MatlabSky©版权所有
网址:
http://www.matlabsky.
com
中国权威MATLAB论坛核心期刊
MATLAB技术论坛简介
目录
1 动画的制作
1.1 电影动画
1.1.1 电影动画演示实例(一)——千变万化的线条
1.1.2 电影动画演示实例(二)——跳动的红心
1.2 擦除动画
1.2.1 Matlab擦除重绘动画实例(一)——运动的小球
1.2.2 Matlab擦除重绘动画实例(二)——单摆横梁
1.2.3 Matlab擦除重绘动画实例(三)——时钟演示
1.2.4 Matlab擦除重绘动画实例(四)——小球绕跑道运动
1.3 质点动画
1.3.1 质点动画演示(一)
1.3.2 质点动画演示(二)——平抛运动
1.3.3 质点动画演示(三)——导弹发射
1.4 霓虹灯效果动画
1.4.1 霓虹灯效果动画实例(一)——霓虹闪烁的球体
1.4.2 霓虹灯效果动画实例(二)——一颗花心
1.5 GIF格式动画制作
1.5.1 GIF格式动画制作案例——绕螺旋线运动的小球
2 动画的保存
3 有关动画制作的实验报告
4 更多动画实例
4.1 电影动画演示——旋转的山峰
4.2 擦除动画实例——卫星绕地球运动(注释很详细)
4.3 擦除动画实例——太阳|地球|月亮|卫星,绕转演示动画(注释很详细)
5 光学夫朗和费衍射现象模拟MATLAB源代码
6 牛顿环动画演示MATLAB源代码
7 使用MATLAB绘制原子轨道和电子云图形
8 振动摆MATLAB动画源代码
Matlab中动画的实现、制作和保存
/thread-592-1-1.html
Matlab的确是一个很优秀的工程计算软件,除了强大的矩阵运算,仿真分析外,绘图功能也是相当的强大。
但是由于Matlab本身的多线程编程缺陷(所谓多线程,就是MATLAB没法同时执行多个回调,只能排队一个一个的按顺序运行,Timer对象除外,它是MATLAB中唯一能够执行多线程的方法),想要动态的画图,并且能够很好的在GUI中得到控制,还不是一件很容易的事情。
但是动画具有生动形象直观的好处,对我的教学、研究等都有不小的作用。那好,我在这里勉为其难的介绍下Matlab中是如何制作动画的。
1 动画的制作
Matlab中动画实现的方法主要有下面三种
1.1 电影动画
帖子地址:/thread-593-1-1.html
从不同的视角拍下一系列对象的图形,并保存到变量中,然后按照一定的顺序像电影一样播放。
电影动画的好处就是,运行一次可以多次播放,甚至可以直接生成avi文件,直接独立与Matlab环境播放。这是其它三种动画制作方法所不具备的。
MATLAB中,创建电影动画的过程分为以下四步:
step1:调用moviein函数对内存进行初始化(该步骤在Matlab5.3以上均可省略),创建一个足够大的矩阵,使之能够容纳基于当前坐标轴大小的一系列指定的图形(此处称为帧)。
step2:调用getframe函数生成每个帧。该函数返回一个列矢量,利用这个矢量,就可以创建一个电影动画矩阵。
getframe函数可以捕捉动画帧,并保存到矩阵中。一般将该函数放到for循环中得到一系列的动画帧。该函数格式有:
(1)F=gefframe,从当前图形框中得到动画帧
(2)F=gefframe(h),从图形句柄h中得到动画帧
(3)F=getframe(h,rect),从图形句柄h的指定区域rec中得到动画帧
step3:调用movie函数按照指定的速度和次数运行该电影动画。
当创建了一系列的动画帧后,可以利用movie函数播放这些动画帧。该函数的主要格式有:
(1)movie(M),将矩阵M中的动画帧播放一次
(2)movie(M,n),将矩阵M中的动画帧播放n次
(3)movie(M,n,fps),将矩阵M中的动画帧以每秒fps帧的速度播放n次
step4:调用movie2avi函数可以将矩阵中的一系列动画帧转换成视频文件avi文件。这样,即使脱离了matlab环境都可以播放动画。
该方法的经典格式是:
%录制电影动画
for j=1:n
%
%这里输入我们的绘图命令
%
M(j) = getframe;
end
movie(M)
%单帧显示方法
f = getframe(gcf);
colormap(f.colormap);
image(f.cdata);
1.1.1 电影动画演示实例(一)——千变万化的线条
%by dynamic
%see also
%2008.7.12
close all
figure('toolbar','none','menubar','none','NumberTitle',...
'off','name','电影动画录制——Matlabsky');
axis equal
m=moviein(20,gcf);%在当前窗口下,截取20帧
set(gca,'nextplot','replacechildren','box','off','color','b','xgrid', 'on')