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...]) 这是一个处理大矩阵且内容有重复时使用 ...
随机推荐
- 微信小程序(一),授权页面搭建
wxml代码如下: <!--pages/index2/index2.wxml--> <view class="index2Container"> <i ...
- Windows编译OpenCV4Android解决undefined reference to std错误
注意OpenCV 4.0.1 解决了这个问题请直接下载OpenCV 4.0.1 但是OpenCV 4.0.1作为模块导入Android Studio会有找不到R.styleable的问题 OpenCV ...
- ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门
一.前言 1.本教程主要内容 ASP.NET Core MVC控制器简介 ASP.NET Core MVC控制器操作简介 ASP.NET Core MVC控制器操作简介返回类型简介 ASP.NET C ...
- python2和python3的一些差别
未来python3是主流,但还是因为一部分原因,很多项目还在用python2.python3是不兼容python2的,做了一些优化和改进 1.字符编码 python2:ascii编码 python3: ...
- 前后端分离djangorestframework—— 在线视频平台接入第三方加密防盗录视频
加密视频 在以后的开发项目中,很可能有做在线视频的,而在线视频就有个问题,因为在线播放,就很有可能视频数据被抓包,如果这个在线视频平台有付费视频的话,这样就会有人做点倒卖视频的生意了,针对这个问题,目 ...
- js 学习之路7:switch/case语句的使用
语法格式: switch(n) { case 1: 执行代码块 1 break; case 2: 执行代码块 2 break; default: n 与 case 1 和 case 2 不同时执行的代 ...
- SQL Server 数据库状态选项-用户使用
选项 1. single_user(单用户),multi_user(多用户),restricted_user(受限用户); 描述数据库的用户访问属性,它们互斥,设置其中任何一个选项就会取消对其它选项的 ...
- Postman安装与使用
Postman一款非常流行的API调试工具.其实,开发人员用的更多.因为测试人员做接口测试会有更多选择,例如Jmeter.soapUI等.不过,对于开发过程中去调试接口,Postman确实足够的简单方 ...
- 用 PLSQL 创建新用户及导入 dmp
一.创建表空间 在导入 dmp 文件之前,你要在数据库里面给它分配一片存储它的地方(表空间). 如果我们知道需要导入的数据库的表空间直接创建就可以,如果不不知道,也没有关系,我们可以用 txt 打开 ...
- .Net Cache
在.net中有两个类实现了Cache HttpRuntime.Cache 应该程序使用的Cache,web也可以用 HttpContext.Current.Cache web上下文的Cache对象, ...