文档网

在MATLAB中实现动画效果【免费】

电脑知识与技术研究开发

在MATLAB中实现动画效果

吴敏1,陈涛2

(1.广东海洋大学网络与教育技术中心,广东湛江524088;2.解放军91388部队,广东湛江524022)

摘要:MATLAB是MathWorks公司开发的新一代的科学与工程计算软件,已经成为全球应用最广泛最流行的软件之一。随着该软件应用的不断普及,用户对其动画功能的需求也在不断增加。该文主要介绍了在MATLAB中实现程序动画、Flash动画和影片动画等效果的方法。具有较强的针对性、代表性和实用性。

关键词:MATLAB;动画;Flash;影片

文献标识码:A文章编号:1009-3044(2006)20-0191-02中图分类号:TP317

CarryouttheAnimationResultinMATLAB

WUMin1,CHENTao2

(1.NetworkandEducationTechnologyCenterofGuangdongOceanUniversity,Zhanjiang524088,China;2.Unit91388ofthePLA,Zhangjiang

524022,China)

Abstract:MATLABisakindofnewscienceandengineeringcomputingsoftwaredevelopedbytheMathWorkscompany,havealreadybecomeoneofthemostextensivelyandpopularsoftwareintheworldapplication.Alongwiththissoftwareapplieduniversallycontinuously,customer'sneedoftheanimationfunctionalsoincreasecontinuously.Thistextmainlyintroducessomemethodtorealizeprocedureanimation,animationofFlashandthefilmanimation...etc.intheMATLAB.Therearemuchdirectly,representativeandpracticalinthistext.

Keywords:MATLAB;animationg;flash;movie

1引言

MATLAB自1984年由美国MathWorks公司推向市场以来,历

经十几年的发展,现已成为国际公认的最优秀的科技应用软件。

刊物以及网站中,多偏然而,现在我们所见的各类MATLAB图书、

重于MATLAB科学计算方面的研究和介绍,对于动画制作方面的内容却涉及很少。但是,我们在MATLAB的实际应用过程中有时不可避免的需要用到动画,这就给我们的应用带来诸多不便。为解决这一矛盾,笔者曾做过一些探索,总结了一些经验,掌握了一些方法,在此与大家共享。

2在MATLAB中实现程序动画

常见的动画都是将离散的静态图形连续播放或快速变化并利用人眼的视觉暂留性来造成一种的感官上的连续动态效果。市面上流行甚广的FLASH等动画制作软件,都是基于这一原理,将现成图形图像进行处理和变化来制作动画的。而MATLAB是基于矩阵运算的工程科学计算软件,它不能简单的依靠图形图像的可

逻辑、函数等底层元素的变化视化编辑来制作动画,而是将矩阵、

通过图形外现来达到动画效果。

在MATLAB中,每一个图形元素就是一个对象,每个对象都有一个相应的唯一的标识符(句柄),并且每个对象都有一组可以根据需要进行调整的属性,对象的属性反映了对象的特征,通过设置、修改这些属性,用户可以灵活地改变、调整图形对象显示的方式。MATLAB句柄图形的这一基本思想就是它实现动画功能的基本方法和重要原则。在MATLAB中常用set语句来修改句柄图形对象的属性。基本语法为:set(H,'PropertyName',Prop-ertyValue),其中H为图形句柄,PropertyName为属性名称,Prop-ertyValue为属性值,MATLAB中允许在一个语句中对同一图形句柄的多个不同属性值进行设置。在MATLAB绘图中常用line函数来定义动画的基本变化元素,基本语法为:line(x,y,z),其中x、y、z为坐标点数据。函数line句柄常用的属性有:Color(颜色)、XData(x轴数据)、YData(y轴数据)、ZData(z轴数据)、EraseMode(擦除模式)、LineStyle(线型)、Marker(点型)、MarkerSize(点尺寸)、Visible(可视性)等等。其中EraseMode是制作动画时非常关键的一个属性,其擦除属性的设置主要有四个可选值:(1)“nor-

,缺省值,计算整个画面的数据,重画整个图形,这种模式产mal”

生的图形最准确,但是速度最慢;(2)“background”,将旧对象的颜

色变为背景颜色,实现擦除,这种模式将损坏被擦除对象下面的

对象,但新对象会正确着色;(3)“none”,不做任何擦除;(4)“xor”,只画与屏幕颜色不一致的新对象点,只擦除与屏幕颜色不一致的原对象点,该方式不损坏被擦除对象下面的对象。

我们用line函数绘出运动点,在循环体内结合set函数巧妙的设置line句柄的擦除属性,就能制作出令人惊异的动画效果了。例如,笔者编制了一个简单的螺旋星动画程序animation_star.m,程序中实现五角星在三维空间由下而上螺旋上升,五角星的尺寸和旋转半径逐渐变大,并留下一串轨迹,至上限后顺原轨迹回旋而下,并擦除原轨迹,如此反复,效果十分生动漂亮(如图1

图1螺旋星动画所示)。程序源代码略。

在MATLAB中实现动画还有

一个很有用的函数:rotate,其功能是实现句柄图形的旋转,基本语法为:rotate(H,[xyz],alpha),其中[xyz]为旋转中心轴,al-

用ratate函数实现动画时常配合getframe函数使pha为旋转角度。

用,它可以在循环体中到句柄图形,然后在循环体外以movie“拍”

函数将获得的图形回放,这种方式有点像将照相机抓拍的若干照片连动放映而成的动画。仍以上例x、y、z坐标值为例,我们可以添加如下代码来实现一个螺旋线绕顶点中心轴逆时针旋转的动画(如图2所示):

3在MATLAB中实现Flash动画

在MATLAB中实现Flash动画,其核心在于在MATLAB中调用具有播放Flash动画功能的ActiveX部件。ActiveX部件是Microsoft公司提供的一种用于模块集成的新协议,它是一些遵循ActiveX规范编写的可执行代码,比如一个*.exe、*.dll或*.ocx文件。在程序中加入ActiveX部件后,

图2

在MATLAB中实现动画效果【免费】

在MATLAB中实现动画效果【免费】

螺旋线旋转动画

收稿日期:2006-03-07

作者简介:吴敏(1977-),女,湖北武汉人,助教,从事计算机教学及校园网络建设管理工作;陈涛(1977-),男,湖北洪湖人,工程师。

191

相关文档
热门文档
你可能喜欢
  • 制作动画
  • MATLAB编程
  • matlab动画制作
  • 简单动画制作
  • Matlab教程
  • matlab实例教程
  • matlab编程实例
  • matlab程序
评论