众所周知,MATLAB的绘图能力十分强大。有时,我们不仅需要绘图,还需要制作一些动态视频和动画,下面就来介绍一些matlab里制作动画和视频常用的函数,并举出一些实例。

一.animatedline

animatedline函数可以帮助对线条动画进行优化,允许用户在不重新定义现有点的情况下,添加新的点。源代码如下

a1 = animatedline('Color',[0 .7 .7]);
a2 = animatedline('Color',[0 .5 .5]);axis([0 20 -1 1])
x = linspace(0,20,10000);
for k = 1:length(x);% first linexk = x(k);ysin = sin(xk);addpoints(a1,xk,ysin);% second lineycos = cos(xk);addpoints(a2,xk,ycos);% update screendrawnow limitrate
end

运行结果

本段代码参考自:https://cn.mathworks.com/help/matlab/creating_plots/line-animation-of-streaming-data.html

现在来说说里面用到的一些函数

(1)addpoints函数:函数原型如下

addpoints(an,x,y)
addpoints(an,x,y,z)

addpoints函数定义动画曲线中的指定通过点。x,和y有可能是同维数的向量,也可以写成表达式的形式。添加6个点到直线源程序

h = animatedline('Marker','o');
x = 1:6;
y = 1:6;
addpoints(h,x,y)

运行结果

(2)循环添加点到曲线

figure
h = animatedline;
axis([0 4*pi -1 1])for x = linspace(0,4*pi,10000)y = sin(x);addpoints(h,x,y)drawnow limitrate
end

本段代码源自:https://cn.mathworks.com/help/matlab/ref/addpoints.html

(2)drawnow函数

matlab中的帮助命令释义:如果你修改了图像对象并且立刻想在屏幕上看到对象的更新,则可使用drawnow函数。我的理解是使用它可以不断对屏幕进行刷新。

(3)axis函数

axis函数用来限定x轴和y轴的变化范围。主要形式有

 axis([XMIN XMAX YMIN YMAX]) sets scaling for the x- and y-axeson the current plot.axis([XMIN XMAX YMIN YMAX ZMIN ZMAX]) sets the scaling for thex-, y- and z-axes on the current 3-D plot.axis([XMIN XMAX YMIN YMAX ZMIN ZMAX CMIN CMAX]) sets thescaling for the x-, y-, z-axes and color scaling limits onthe current axis (see CAXIS). 

(4)pause函数

pause(n)表示程序暂停n秒后执行,放在plot和plot3之后可以进行动态绘图演示。n值设置的越小,绘制视频的速度越快。

二 视频的制作

 writerObj =VideoWriter('shipin.avi');video.FrameRate=80;open(writerObj);writeVideo(writerObj,F);close(writerObj);

步骤可总结如下:

(1)创建一个视频文件

(2)打开视频文件

(3)将帧写入视频文件

(4)关闭视频文件

注:将帧写入视频文件中还用到了getframe函数:获取视频的帧数。示例程序如下:

 for j=1:nplot_commandM(j) = getframe;endmovie(M)

在使用for循环进行动画制作时,getframe放在绘图命令后面,将每一次循环中的画好的图像保存下来。

matlab动画制作详解相关推荐

  1. StarWink UV顶点动画制作详解

    StarWink UV顶点动画制作详解 我们先来看最终效果 实现原理: 1.利用算法得到圆形差值的UV坐标(中间为0)去采样纹理,得到圆形扩散的循环纹理动画. 2.利用算法得到循环的圆形扩散遮罩,并作 ...

  2. 利用Animation控件制作帧动画过程详解

    利用Animation控件制作帧动画过程详解 前言 通过Animation控件来达到序列图的播放(素材和示例视频在文章末尾) 一.序列图 (此素材为已经分割好的序列图) 如若序列图在一张图片上,请参考 ...

  3. 利用MATLAB实现图片切换动画效果详解

    内容摘要:本博文介绍MATLAB图片切换动画效果的制作以及GIF文件保存,并结合具体代码详细解释.介绍了利用MATLAB编程进行几幅图片的轮流切换,切换时实现与幻灯片切换相似的炫酷的图片切换特效.其中 ...

  4. Android 动画框架详解,第 1 部分

    2019独角兽企业重金招聘Python工程师标准>>> Android 平台提供了一套完整的动画框架,使得开发者可以用它来开发各种动画效果,本文将向读者阐述 Android 的动画框 ...

  5. Unity动画系统详解10:子状态机是什么?

    摘要:除了使用Layer还有没有更好的组织状态的方式呢?感觉一个Layer里面状态多的时候,还是很显得很乱. 洪流学堂,让你快人几步.你好,我是跟着大智学Unity的萌新,我叫小新,这是复(yu)习( ...

  6. Unity动画系统详解9:Target Matching是什么?

    摘要:在游戏中,经常有这种情况:角色的手或者脚需要在特定时间放在特定的位置.比如角色需要用手撑着跳过一个石头或一堵墙,或者跳起抓住房梁.Target Match就是让动画的特定片段去匹配特定的位置. ...

  7. Unity动画系统详解5:BlendTree混合树是什么?

    摘要:"Animator中有一个功能,用来解决多个动画之间的混合,经常用于移动动画之间的混合,这个功能叫做BlendTree,混合树." 洪流学堂,让你快人几步.你好,我是跟着大智 ...

  8. unity velocity_Unity动画系统详解5:BlendTree混合树是什么?

    摘要:"Animator中有一个功能,用来解决多个动画之间的混合,经常用于移动动画之间的混合,这个功能叫做BlendTree,混合树." 洪流学堂,让你快人几步.你好,我是跟着大智 ...

  9. T4M插件放入unity后怎么找不到_Unity动画系统详解4:如何用代码控制动画?

    摘要:通过上一篇咱们知道了播放动画需要使用Animator,那么如何用代码控制动画呢? 洪流学堂,让你快人几步.你好,我是跟着大智学Unity的萌新,我叫小新,这几周一起来复(yu)习(xi)动画系统 ...

最新文章

  1. 《树莓派Python编程指南》——2.2 一个Python游戏:猫和老鼠
  2. swift - if let Optional 语法
  3. ES中的RollUp概念
  4. 在 Delphi 中调用 JavaScript(二)
  5. strtotime()加半个小时_椰子鸡这样做太好吃了,一滴水不用加,鲜香嫩滑,做法非常简单...
  6. java 调用 Oracle 存储过程
  7. C与PHP的联系与区别
  8. MySQL分区表概述
  9. Android笔记 actionbar学习
  10. 整理了10个行业的30份可视化大屏模板,可直接拿走套用
  11. python爬虫网络出错怎么办_python爬虫之headers处理、网络超时问题处理
  12. 20165218 《网络对抗技术》Exp0 Kali安装 Week1
  13. python轻量级web开发框架Flask学习使用
  14. Android POS开发
  15. java导出图片到excel_POI:将图片导出到Excel
  16. Xcode真机调试 could not lunch failed to get reply to handshake packet
  17. 在小鸟云进行服务器托管,怎么升级配置?
  18. 【测开实战】adb+python自动化刷快手/抖音视频来赚金币
  19. 第3章 远程连接管理Linux实践
  20. [附源码]计算机毕业设计springboot小太阳幼儿园学生管理系统

热门文章

  1. 1072 开学寄语 C++实现
  2. c语言中的inv是什么缩写,INV(inv是什么的缩写)
  3. 外挂三部曲(三) —— Android 图片相似度对比
  4. 谈谈Linux发行版的入门选择
  5. R语言遍历字符串再拼接复原
  6. C语言编程>第十六周 ⑤ 请补充fun函数,该函数的功能是:依次取出字符串中所有大写字母,形成新的字符串,并取代原字符串。
  7. elementUI 相同元素合并行
  8. 2022CCPC网络预选赛c题Problem C. Guess
  9. ExoPlayer的使用之自定义UI界面
  10. 服务器虚拟化双活,分布式双活数据中心部署模式