云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > MbookMATLAB4计算的可视化和GUI设计

MbookMATLAB4计算的可视化和GUI设计

  • 62 次阅读
  • 3 次下载
  • 2025/6/23 0:00:22

4.8动画

4.8.1以电影方式产生动画

以电影方式产生动画,有两个步骤:

(1) 使用getframe命令来抓取图形作为画面,每个画面都是以一个列向量的方式,置于存放整个电影的矩阵M中。

(2) 使用movie(M,k)命令来播放电影,并可指定矩阵M播放的重复次数k。

【例4.33】使用电影方式制作动画,显示二阶系统的时域波形,最后一个画面如图4.54所示。

n=20;

for i=1:n x=0:0.1:i;

y=1-1/sqrt(1-0.3^2)*exp(-0.3*x).*sin(sqrt(1-0.3^2)*x+acos(0.3)); plot(x,y)

axis([0,20,0,1.5]); %固定坐标轴 M(i)=getframe; %抓取画面 end

movie(M,3) %播放3次

程序分析:使用for循环,画20个不同阶段的波形画面,将画面抓取保存到M矩阵中,播放3次。

图4.54 最后一帧画面

4.8.2以对象方式产生动画

1.擦除属性EraseMode

以对象方式产生动画需要设置EraseMode属性,EraseMode为一个字符串,代表对象的擦除方式,即对于旧对象的处理方式。EraseMode属性有以下几种:

? normal:计算整个画面的数据,重画整个图形。

? xor:将旧对象的点以xor的方式还原,即只画与屏幕色不一致的新对象点,擦除不一致的原对象点,这种方式不会擦除被擦对象下面的其他图像。

? background:将旧对象的点变成背景颜色,实现擦除,这种方式会擦除被擦对象下面的其他图像。

? none:保留旧对象的点,不做任何擦除。 在上述四种EraseMode中,耗费时间的次序是: normal > xor > background > none

2.对象的位置属性

通常在动画过程中,会改变对象的位置或尺寸、颜色等外观属性,位置属性有: ? xdata:为一个向量,代表对象的x坐标值。 ? ydata:为一个向量,代表对象的y坐标值。

3.屏幕刷新

当新对象的属性设置后,应刷新屏幕,使新对象显示出来,刷新屏幕用drawnow命令实现。

4.产生动画

产生动画的具体步骤是:

(1) 先产生一个对象,其EraseMode属性为xor、background或none; (2) 在循环中产生动画,每次循环改变此对象的xdata或ydata(或两者); (3) 使用drawnow命令刷新屏幕

【例4.34】使用对象方式产生用一个红色的小球沿着曲线运动的动画,如图4.55所示。

图4.55 运行界面

x=0:0.1:20;

y=1-1/sqrt(1-0.3^2)*exp(-0.3*x).*sin(sqrt(1-0.3^2)*x+acos(0.3)); plot(x,y)

h=line(0,0,'color','red','marker','.','markersize',40,'erasemode','xor'); %定义红色的小球

for i=1:length(x)

set(h,'xdata',x(i),'ydata',y(i)); %设置小球的新位置 pause(0.005) %暂停0.005秒 drawnow %刷新屏幕 end

程序分析:小球以xor的方式擦除旧曲线,如果将EraseMode改成background方式,则会发现小球会擦掉原来的曲线;drawnow命令的作用是使MATLAB立刻处理set命令,但由于本例中使用pause命令暂停,屏幕一定会得到及时的更新,drawnow如果去掉效果一样。

搜索更多关于: MbookMATLAB4计算的可视化和GUI设计 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

4.8动画 4.8.1以电影方式产生动画 以电影方式产生动画,有两个步骤: (1) 使用getframe命令来抓取图形作为画面,每个画面都是以一个列向量的方式,置于存放整个电影的矩阵M中。 (2) 使用movie(M,k)命令来播放电影,并可指定矩阵M播放的重复次数k。 【例4.33】使用电影方式制作动画,显示二阶系统的时域波形,最后一个画面如图4.54所示。 n=20; for i=1:n x=0:0.1:i; y=1-1/sqrt(1-0.3^2)*exp(-0.3*x).*sin(sqrt(1-0.3^2)*x+acos(0.3)); plot(x,y) axis([0,20,0,1.5]); %固定坐标轴 M(i)=getfra

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com