MATLAB GUI中利用定時器製作動畫

2021-04-13 23:20:35 字數 782 閱讀 4980

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',);

period 是觸發的週期,這裡設定為0.05s,executionmode是執行的方式,可以有三種選擇,對於不需要精確控制時序的動畫的影響不大, timerfcn指定觸發時所執行函式的控制代碼,在這裡我們建立乙個函式plotupdate來執行繪圖命令,handles作為引數傳遞到 plotupdate中去。

注意plotupdate的定義:

function plotupdate(obj,events,handles)

前 兩個引數是必不可少的,最後的h

java中定時器

void cancel 終止此計時器,丟棄所有當前已安排的任務。int purge 從此計時器的任務佇列中移除所有已取消的任務。void schedule timertask task,date time 安排在指定的時間執行指定的任務。void schedule timertask task,da...

c 中定時器

關於c 中timer類 在c 裡關於定時器類就有3個 1.定義在system.windows.forms裡 2.定義在system.threading.timer類裡 3.定義在system.timers.timer類裡 例 使用system.timers.timer類 system.timers....

定時器和延時器(利用定時器製作倒計時)

一 延時器 settimeout 1.延時器 settimeout 的工作方式是 當設定乙個延時器是5s後進行時,並不代表它5s後就立即執行,只是代表它5s後會被加入佇列,如果5s後,佇列沒有其他東西,那麼延時器的 會立即執行,否則會延遲執行。因此,關於延時器最重要的一點是 指定的時間間隔 如設定5...