MATLAB GUI中利用定时器制作动画

这篇博客介绍了如何在MATLAB GUI中使用定时器timer创建动画效果。通过在'开始'按钮回调中启动定时器,周期性调用PlotUpdate函数更新图形。定时器的周期和执行模式可以设置,PlotUpdate函数根据曲面振动趋势生成新坐标并更新。在'停止'和'增大振幅'按钮回调中,分别停止定时器和更新参数。需要注意,定时器每次触发时使用的是初始化时的参数,因此要动态改变参数需重新设置'TimerFcn'。
摘要由CSDN通过智能技术生成
MATLAB中提供了一些动态显示图形的例子,例如vibes、truss等,但他们的程序结构都和由GUIDE产生的M文件的结构不同。truss中用 while循环来更新图形窗口,pause函数来控制更新的速度。这样的结构是不适合放在某一个子函数中来执行的,否则程序在执行该子函数时无法响应用户 的其它操作,只能一开始就设置终止条件,等待动画的自然结束。

MATLAB中的定时器timer可以定时触发,周期性地执行指定的函数,我们可以据此来实现绘图的自动更新,而不会影响整个GUI对用户其它操作的响应。
比如我们要让一个曲面随时间周期性地变形,类似vibes中的情形,按下“开始”按钮后,曲面开始周期振动,同时我们可以调整振幅大小、周期的长短。所不同的是我们一切都在子函数中完成。

在GUIDE中建立界面元素后,在“开始”按钮的callback中建立一个定时器timer对象object
handles.timer = timer('Period',0.05,'ExecutionMode','FixedRate',
... 'TimerFcn',{@PlotUpdate,handles});
Period 是触发的周期,这里设置为0.05s,ExecutionMode是执行的方式,可以有三种选择,对于不需要精确控制时序的动画的影响不大, TimerFcn指定触发时所执行函数的句柄,在这里我们建立一个函数PlotUpdate来执行绘图命令,handles作为参数传递到 PlotUpdate中去。

注意PlotUpdate的定义:
function PlotUpdate(obj,events,handles)
前 两个参数是必不可少的
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值