已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MATLAB程序设计入门篇动画制作 1 6 1MATLAB动画简介6 2以电影方式产生动画 a 电影动画之范例一 b 电影动画之范例二 c 电影动画之范例三6 3以对象方式产生动画 a 曲线的动画 b 曲线的EraseMode c 对象动画之范例 2 6 1MATLAB动画简介 MATLAB产生动画的方式有两种 电影方式 以影像的方式预存多个画面 再将这些画面快速的呈现在屏幕上 就可以得到动画的效果 此种方式类似于电影的原理 可以产生很缤纷亮丽的动画 但是其缺点为每个画面都必需事先备妥 无法进行及时成像 Real timeRendering 而且每个画面 以至于整套动画 都必需占用相当大的内存空间 物件方式 在MATLAB的 握把式图形 HandleGraphics 详见本书第七章 概念下 所有的曲线或曲面均可被视为一个对象 MATLAB可以很快的抹去旧曲线 并产生相似但不同的新曲线 此时就可以看到曲线随时间而变化的效果 使用对象方式 即握把式图形 所产生的动画 可以呈现实时的变化 也不需要太高的内存需求 但其缺点是较难产生太复杂的动画 3 6 2以电影方式产生动画 以电影方式来产生动画 可由下列两个步骤来达成 使用getframe指令来抓取图形做为电影的画面 每个画面都是以一个行向量的方式 置放于整个代表电影的矩阵 使用movie指令来播放电影 并可指定播放的重复次数及每秒播放的画面数目 4 电影动画之范例一 在下例中 我们将以不同的角度来显示peaks函数 并将其结果以电影的方式来呈现动画 范例6 1 movie01 m clearM 清除电影资料矩阵Mn 50 抓取50个画面peaks fprintf 抓取画面中 n fori 1 nview 37 5 i 360 n 30 改变观测角度M i getframe 抓取画面 并存入电影资料矩阵Mendfprintf 播放电影中 n movie M 3 播放电影三次 5 电影动画之范例一 最后一个frame的画面 6 电影动画之范例二 将peaks函数画在圆盘上 然后再变换此函数的高度 以动画呈现范例6 2 movie02 m clearM 清除电影资料矩阵Mr linspace 0 4 30 圆盘的半径t linspace 0 2 pi 50 圆盘的极坐标角度 rr tt meshgrid r t xx rr cos tt 产生圆盘上的x坐标yy rr sin tt 产生圆盘上的y坐标zz peaks xx yy 产生peaks在极坐标的数据n 30 抓取30个画面scale cos linspace 0 2 pi n fprintf 抓取画面中 n fori 1 nsurf xx yy zz scale i 画图axis infinf infinf 8 58 5 固定图轴的范围boxonM i getframe 抓取画面 并存入电影资料矩阵Mendfprintf 播放电影中 n movie M 5 播放电影5次 7 电影动画之范例二 最后一个frame的画面 8 电影动画之范例三 改变影像的色盘矩阵 让影像出现 从正片变到负片 的效果范例6 3 movie03 m clearM 清除电影资料矩阵Mloadclown matimage X colormap map 画出小丑脸n 30 抓取30个画面scale cos linspace 0 2 pi n fprintf 抓取画面中 n fori 1 ncolormap i 1 1 map n i map n 改变色盘矩阵M i getframe 抓取画面 并存入电影资料矩阵Mendfprintf 播放电影中 n movie M 5 播放电影5次 含正向与逆向播放 9 电影动画之范例三 在上述范例中 正片 如下张投影片图左 的色盘矩阵是map 而1 map则是负片 如下张投影片图右 的色盘矩阵 因此我们在抓影片时 让色盘矩阵进行渐进式的变化 因此呈现的电影就有 从正片变到负片 的效果 另外 movie M 5 代表电影将播放5次 但由于第二个参数是负数 所以每次播放会包含一次 正向播放 及一次 逆向播放 10 电影动画之范例三 正片色盘矩阵是map 负片色盘矩阵是1 map 11 电影动画的其他范例 MATLAB的demo程序中亦包含了数个与电影方式相关的动画 读者可以在指令窗口输入下列任一指令 xpmovievibesxpmovielogospinxpmoviecrulspin 12 6 3以对象方式产生动画 以电影方式产生动画可以说是 暴力法 因为此方法占掉了许多内存空间 另一个技巧性较高的方法则是以对象方式产生动画 此种方法不需要大量的内存 而且可以产生 实时 Real time 或 交互式 Interactive 的动画 MATLAB的所有图形组件 曲线 曲面 图轴等 都是对象 您可以控制这些对象的各种性质 此种特性称为 握把式图形 HandleGraphics 可详见第七章 握把式图形包含的层面很广 但牵涉到动画部份的基本概念并不复杂 以下我们以曲线的动画来说明 13 曲线的动画 我们可以快速地改变图形对象的性质 如颜色 坐标等 就可以达到动画的效果每一条曲线都有下列三种性质 xdata 此为一向量 代表曲线的x坐标值ydata 此为一向量 代表曲线的y坐标值EraseMode 此为一字符串 代表曲线被抹除的方式 亦即当xdata或ydata被改变时 对于旧曲线的处理方式 14 曲线的EraseMode EraseMode对于动画的呈现相当重要 此字符串可是下列几种选择 normal 重画整个画面 xor 将旧曲线的点以xor的方式还原 background 将旧曲线的点改成背景颜色 none 保留旧曲线的点 不做任何处理 在上述四种EraseMode中 耗费时间的次序是normal xor background nonexor和background很接近 但是background会抹去其他旧曲线所扫过的其他对象 如图轴 网格线 另一条曲线等 所以较少用到 所以一般在产生动画时 最常用到的EraseMode就是xor 15 曲线的动画 有了这些概念后 产生曲线的动画就很容易了 其主要步骤有两点 产生一条曲线 其EraseMode为xor background 或none 在for loop之中 改变此曲线的xdata或ydata 或两者 我们产生一条随x而衰减的正弦曲线 并让k随时间而便大 即改变正弦波的相角 使整条曲线产生舞动的效果 16 对象动画之范例一 我们产生一条衰减的正弦曲线让k随时间而便大 即改变正弦波的相角 使整条曲线产生舞动的效果 范例6 1 movie04 m x 0 0 1 8 pi h plot x sin x exp x 5 EraseMode xor axis infinf 11 设定图轴的范围gridon 画出网格线fori 1 5000y sin x i 50 exp x 5 set h ydata y 设定新的y坐标drawnow 立即作图end 17 对象动画之范例一 我们产生一条衰减的正弦曲线让k随时间而便大 即改变正弦波的相角 使整条曲线产生舞动的效果 范例6 1 movie04 m x 0 0 1 8 pi h plot x sin x exp x 5 EraseMode xor axis infinf 11 设定图轴的范围gridon 画出网格线fori 1 5000y sin x i 50 exp x 5 set h ydata y 设定新的y坐标drawnow 立即作图end 18 对象动画之范例一 最后一个frame的画面 19 对象动画之范例一 在上例中 我们使用set指令 总共改变曲线的y坐标5000次 并以xor的方式抹掉旧曲线 drawnow的作用是使MATLAB立刻处理set指令 若无drawnow MATLAB会累积set指令 直到for loop结束时再一并处理图形的变化 这时就不会看到动画的效果 如果您将上例的EraseMode改成background 则会发现曲线会 抹掉 图形中的网格线及代表图轴的直线 如果您将上例的EraseMode改成none 则旧的曲线会被保留下来 产生不同的效果 20 对象动画之范例 MATLAB MATLAB有很多对象动画之范例 lorenz 以3D动画呈现的Lorenz混沌方程式 ChaoticEquation 好像慧星在运行 truss 一座桥梁在地震时的震动方式 共有12种喔 travel 显示如何以杂乱搜寻 RandomSearch 的方式来解TravelingSalespersonProblem fitdemo 显示如何以DownhillSimplexSearch来解决非线性曲线拟合 NonlinearCurveFitting 的问题 spinner 常见的屏幕保护程序 xphide 试试您的眼力 21 对象动画之范例 Simulink 若您有安装Simulink 可试试下列动态系统仿真加上动画呈现 onecart 传统的弹簧加上砝码的动态系统 dblcart1 一条弹簧加上两个砝码的动态系统 simppend 简单的单摆系统 dblpend1 两截的摆动系统 dblpend2 更复杂的摆动系统 penddemo 倒单摆系统 22 对象动画之范例 模糊工具箱 如果您有安装FuzzyLogicToolbox 可以试试由张老师开发的各项模拟及动画展示 fcmdemo FuzzyC meansClustering juggler 用板子接皮球 invkine 两截机器手臂的InverseKinematics slcp1 倒单摆 杆子长度随时间而变 您可以控制所欲到达的位置 slcpp1 双倒单摆 其中一个杆子的长度随时间而变 您可以控制所欲到达的位置 slbb 跷跷板加上滚球系统 您可以控制球的最后位置 sltbu 倒车入库系统 23 以对象方式产生动画 呈现一个小圆 半径为1 在一个大圆 半径为3 的圆周外部滚动的动画 functionmymovie02closealltheta 0 0 1 2 pi r1 3 x1 r1 cos theta y1 r1 sin theta plot x1 y1 axisimage 大圆r2 1 center r1 r2 1 0 x2 r2 cos theta y2 r2 sin theta h line center 1 x2 center 2 y2 EraseMode xor color r 小圆axis 55 55 设定图轴的范围n 5 转5圈theta1 0 0 005 n 2 pi fori 1 length theta1 center r1 r2 cos theta1 i sin theta1 i set h xdata center 1 x2 ydata center 2 y2 设定小圆的x y坐标drawnow 立即作图end 24 functionmymovie02 2closealltheta 0 0 1 2 pi r1 3 circle1 r1 exp sqrt 1 theta 大圆plot circle1 axisimager2 1 circle2 r2 exp sqrt 1 theta 小圆center r1 r2 h line real center circle2 imag center circle2 EraseMode xor color r axis 55 55 设定图轴的范围n 5 转5圈theta1 0 0 005 n 2 pi fori 1 length theta1 center r1 r2 exp sqrt 1 theta1 i set h xdata real center circle2 ydata imag center circle2 设定小圆的x y坐标drawnow 立即作图end 25 以对象方式产生动画 呈现一个圆圈 半径为1 由画面左边滚到右边 圆周上的任一点所拉出的一条摆线 functioncycloid01 摆线的动画 x 0 0 01 5 pi theta linspace 0 2 pi r 1 circle j r exp sqrt 1 theta subplot 2 1 1 circleH plot circle axisimageset circleH erase xor axis min x r max x r 0 5 2 r 0 5 dot1H line 0 0 marker o color k erase xor dot2H line 0 0 marker color r erase none fori 1 length x set circleH xdata x i real circle angle pi 2 x i set dot1H xdata x i cos angle ydata r sin angle set dot2H xdata x i cos angle ydata r sin angle line xdata x i cos angle ydata r si
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 相关方安全管理责任制度
- 小学安全工作责任制度
- 团组织网络安全责任制度
- 商管目标管理责任制度
- 监理综合岗位责任制度
- 房屋租赁责任制度范本
- 古玩鉴定责任制度范本大全
- 施工扬尘控制责任制度
- 医院督察办岗位责任制度
- 县级财政支出责任制度
- 多模式镇痛临床实践与应用
- 2026吉林农业大学三江实验室办公室招聘工作人员笔试备考试题及答案解析
- 脑中风科普知识讲座
- 历史试题-汕头市2025-2026学年度普通高中毕业班教学质量监测(含解析)
- 部队食堂制度规范标准
- 二十届中纪委五次全会知识测试题及答案解析
- 2026年沈阳艺考乐理真题及答案
- 房内装修拆除合同范本
- DB23∕T 3242-2022 秸秆固化成型燃料站设计技术规范
- 生菜课件教学课件
- 5年(2021-2025)高考1年模拟化学真题分类汇编专题12 化工流程综合题(北京专用)(解析版)(北京专用)
评论
0/150
提交评论