Matlab 中movie函数的使用
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=:n
- %
- %这里输入我们的绘图命令
- %
- M(j) = getframe;
- end
- movie(M)
- %举个我曾经做过的凸轮机构 运动仿真的实例
- %%以下仅为 运动movie部分代码
- %-----------------运动仿真开始-------------------
- figure()
- m=moviein();
- j=;
- for i=:
- j=j+;
- delta(i)=i*hd;%凸轮转角
- xy=[xp',yp'];%凸轮实际轮廓曲线坐标
- A1=[cos(delta(i)),sin(delta(i)); %凸轮曲线坐标旋转矩阵
- -sin(delta(i)),cos(delta(i))];
- xy=xy*A1;%旋转实际凸轮轮廓曲线坐标
- clf;
- %-----------------绘制凸轮------------------
- plot(xy(:,),xy(:,));%绘制凸轮
- hold on;grid on;axis equal;
- axis([(-) () (-) ()]);
- plot([-(r0+h-) (r0+h) ],[ ],'k','LineWidth',);%绘制凸轮水平轴
- plot([ ],[-(r0+h) (r0+rr)],'k','LineWidth',);%绘制凸轮垂直轴
- plot(r0*cos(ct),r0*sin(ct),'g--','LineWidth',);%绘制基圆
- plot(e*cos(ct),e*sin(ct),'c-','LineWidth',);%绘制偏距圆
- plot(e+rr*cos(ct),s0+s(i)+rr*sin(ct),'k','LineWidth',);%绘制滚子圆
- plot([e e+rr*cos(-phi(i))],[s0+s(i) s0+s(i)+rr*sin(-phi(i))],'k','LineWidth',);
- %绘制滚子圆标线
- plot([e e],[s0+s(i) s0+s(i)+],'k','LineWidth',);%绘制推杆
- %------------------绘制推杆曲线-----------------------------
- plot([:]+r0+h,s+s0);%绘制推杆曲线
- plot([(r0+h) (r0+h+)],[s0,s0],'k','LineWidth',);%绘制推杆垂直轴
- plot([(r0+h) (r0+h)],[s0 s0+h],'k','LineWidth',);%绘制水平轴
- plot(i+r0+h,s(i)+s0,'r.','LineWidth',1.5);%绘制推杆曲线坐标动点
- title('偏置直动滚子推杆盘形凸轮设计');
- xlabel('x/mm');
- ylabel('y/mm');
- m(j)=getframe;
- end
- movie(m);
%单帧显示方法
f = getframe(gcf);
colormap(f.colormap);
image(f.cdata);
%------------------------------------------------
此外,利用immovie函数,我们可以从多帧图像阵列中创建MATALB 电影动画。[没用过]
- %随意单张图片代码如下:
- x=-:0.5:;
- [XX,YY]=meshgrid(x);
- r=sqrt(XX.^+YY.^)+eps;
- Z=sin(r)./r;
- surf(Z); %%生成了一幅静态的surf图片,XX,YY由meshgrid生成
- theAxes=axis;
- fmat=moviein();
- for j=:;
- surf(sin(*pi*j/)*Z,Z) %%取每一帧
- axis(theAxes)
- fmat(:,j)=getframe;
- end
- movie(fmat,) %动画放10遍
Matlab 中movie函数的使用的更多相关文章
- matlab中patch函数的用法
http://blog.sina.com.cn/s/blog_707b64550100z1nz.html matlab中patch函数的用法——emily (2011-11-18 17:20:33) ...
- matlab中subplot函数的功能
转载自http://wenku.baidu.com/link?url=UkbSbQd3cxpT7sFrDw7_BO8zJDCUvPKrmsrbITk-7n7fP8g0Vhvq3QTC0DrwwrXfa ...
- 【原创】Matlab中plot函数全功能解析
[原创]Matlab中plot函数全功能解析 该帖由Matlab技术论(http://www.matlabsky.com)坛原创,更多精彩内容参见http://www.matlabsky.com 功能 ...
- matlab 中max函数用法
Matlab中max函数在矩阵中求函数大小的实例如下:(1)C = max(A)返回一个数组各不同维中的最大元素.如果A是一个向量,max(A)返回A中的最大元素.如果A是一个矩阵,max(A)将A的 ...
- Matlab中plot函数全功能解析
Matlab中plot函数全功能解析 功能 二维曲线绘图 语法 plot(Y)plot(X1,Y1,...)plot(X1,Y1,LineSpec,...)plot(...,'PropertyName ...
- matlab中cumsum函数
matlab中cumsum函数通常用于计算一个数组各行的累加值.在matlab的命令窗口中输入doc cumsum或者help cumsum即可获得该函数的帮助信息. 格式一:B = cumsum(A ...
- 『转载』Matlab中fmincon函数获取乘子
Matlab中fmincon函数获取乘子 一.输出结构 [x,fval,exitflag,output,lambda] = fmincon(......) 二.结构说明 lambda结构 说 ...
- matlab中norm函数的用法
格式:n=norm(A,p) 功能:norm函数可计算几种不同类型的矩阵范数,根据p的不同可得到不同的范数 以下是Matlab中help norm 的解释 NORM Matrix or vecto ...
- matlab中fprintf函数的具体使用方法
matlab中fprintf函数的具体使用方法实例如下: fprintf函数可以将数据按指定格式写入到文本文件中.其调用格式为: 数据的格式化输出:fprintf(fid, format, varia ...
- matlab中repmat函数的用法(堆叠矩阵)
matlab中repmat函数的用法 B = repmat(A,m,n) B = repmat(A,[m n]) B = repmat(A,[m n p...]) 这是一个处理大矩阵且内容有重复时使用 ...
随机推荐
- mssql sqlserver获取指定月份当月天数总和
摘要: 下文通过sql函数的形式,获取指定月份的总天数 实验环境:sqlserver 2008 R2 制作思路: 1. 获取指定月份的第一天, 2. 并采用dateadd向后加一个月形成一个新的日期 ...
- Rsync客户端卡死的问题查询
简介 某备份系统大量使用rsync来传输文件,但是偶尔会出现rsync客户端在上传数据的时候长时间卡死,本文记录了解决问题的步骤. 本文只涉及rsync客户端中IO相关逻辑,关于rsync的发送算法并 ...
- 浅谈TCP IP协议栈(三)路由器简介
读完这个系列的第一篇浅谈TCP/IP协议栈(一)入门知识和第二篇浅谈TCP/IP协议栈(二)IP地址,在第一篇中,可能我对协议栈中这个栈的解释有问题,栈在数据结构中是一种先进后出的常见结构,而在整个T ...
- crosstool-ng-1.22.0搭建开发环境
Ubuntu16.04无法安装libtool,只能在Ubuntu14.04以下版本安装. cp 下载/crosstool-ng-1.22.0.tar.bz2 /home/hou/ tar -x ...
- LeetCode算法题-N-ary Tree Preorder Traversal(Java实现)
这是悦乐书的第268次更新,第282篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第135题(顺位题号是589).给定一个n-ary树,返回其节点值的前序遍历.例如,给定 ...
- phoenix API服务发布
概述 Elixir 的 Phoenix 框架对于开发 Web 应用非常方便,不仅有 RoR 的便利,还有 Erlang 的性能和高并发优势. 但是应用的发布涉及到 Erlang 和 Elixir 环境 ...
- 第二节 pandas 基础知识
pandas 两种数据结构 Series和DataFrame 一 Series 一种类似与一维数组的对象 values:一组数据(ndarray类型) index:相关的数据索引标签 1.1 se ...
- 【字】biang
biang biang面的名字由来:biangbiang面是陕西关中地区的一中地区美食,因为在做这种面时会发出biang biang的声音,biang biang面因此得名.biang字简体共有42笔 ...
- git添加/删除远程仓库
注意:仓库只有管理员建的你才有权限上传,不然自己建的也没用,没权限上传 1.远程仓库路径查询 git remote -v 2.添加远程仓库 git remote add origin <你的项目 ...
- SQL 约束 (Constraints)
SQL 约束 约束用于限制加入表的数据的类型. 可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句). 我们将主要探讨以下几种约 ...