matlab动画制作详解
众所周知,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动画制作详解相关推荐
- StarWink UV顶点动画制作详解
StarWink UV顶点动画制作详解 我们先来看最终效果 实现原理: 1.利用算法得到圆形差值的UV坐标(中间为0)去采样纹理,得到圆形扩散的循环纹理动画. 2.利用算法得到循环的圆形扩散遮罩,并作 ...
- 利用Animation控件制作帧动画过程详解
利用Animation控件制作帧动画过程详解 前言 通过Animation控件来达到序列图的播放(素材和示例视频在文章末尾) 一.序列图 (此素材为已经分割好的序列图) 如若序列图在一张图片上,请参考 ...
- 利用MATLAB实现图片切换动画效果详解
内容摘要:本博文介绍MATLAB图片切换动画效果的制作以及GIF文件保存,并结合具体代码详细解释.介绍了利用MATLAB编程进行几幅图片的轮流切换,切换时实现与幻灯片切换相似的炫酷的图片切换特效.其中 ...
- Android 动画框架详解,第 1 部分
2019独角兽企业重金招聘Python工程师标准>>> Android 平台提供了一套完整的动画框架,使得开发者可以用它来开发各种动画效果,本文将向读者阐述 Android 的动画框 ...
- Unity动画系统详解10:子状态机是什么?
摘要:除了使用Layer还有没有更好的组织状态的方式呢?感觉一个Layer里面状态多的时候,还是很显得很乱. 洪流学堂,让你快人几步.你好,我是跟着大智学Unity的萌新,我叫小新,这是复(yu)习( ...
- Unity动画系统详解9:Target Matching是什么?
摘要:在游戏中,经常有这种情况:角色的手或者脚需要在特定时间放在特定的位置.比如角色需要用手撑着跳过一个石头或一堵墙,或者跳起抓住房梁.Target Match就是让动画的特定片段去匹配特定的位置. ...
- Unity动画系统详解5:BlendTree混合树是什么?
摘要:"Animator中有一个功能,用来解决多个动画之间的混合,经常用于移动动画之间的混合,这个功能叫做BlendTree,混合树." 洪流学堂,让你快人几步.你好,我是跟着大智 ...
- unity velocity_Unity动画系统详解5:BlendTree混合树是什么?
摘要:"Animator中有一个功能,用来解决多个动画之间的混合,经常用于移动动画之间的混合,这个功能叫做BlendTree,混合树." 洪流学堂,让你快人几步.你好,我是跟着大智 ...
- T4M插件放入unity后怎么找不到_Unity动画系统详解4:如何用代码控制动画?
摘要:通过上一篇咱们知道了播放动画需要使用Animator,那么如何用代码控制动画呢? 洪流学堂,让你快人几步.你好,我是跟着大智学Unity的萌新,我叫小新,这几周一起来复(yu)习(xi)动画系统 ...
最新文章
- 《树莓派Python编程指南》——2.2 一个Python游戏:猫和老鼠
- swift - if let Optional 语法
- ES中的RollUp概念
- 在 Delphi 中调用 JavaScript(二)
- strtotime()加半个小时_椰子鸡这样做太好吃了,一滴水不用加,鲜香嫩滑,做法非常简单...
- java 调用 Oracle 存储过程
- C与PHP的联系与区别
- MySQL分区表概述
- Android笔记 actionbar学习
- 整理了10个行业的30份可视化大屏模板,可直接拿走套用
- python爬虫网络出错怎么办_python爬虫之headers处理、网络超时问题处理
- 20165218 《网络对抗技术》Exp0 Kali安装 Week1
- python轻量级web开发框架Flask学习使用
- Android POS开发
- java导出图片到excel_POI:将图片导出到Excel
- Xcode真机调试 could not lunch failed to get reply to handshake packet
- 在小鸟云进行服务器托管,怎么升级配置?
- 【测开实战】adb+python自动化刷快手/抖音视频来赚金币
- 第3章 远程连接管理Linux实践
- [附源码]计算机毕业设计springboot小太阳幼儿园学生管理系统