您好,登錄后才能下訂單哦!
小編給大家分享一下MATLAB GUI動畫演示中暫停功能怎么實現,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
先簡單說一下思路:
把這個暫停按鈕設計成togglebutton
把變化的步長放到這個togglebutton
的UserData
中
點擊開始時,執行一個死循環,每次循環都獲取一下暫停按鈕的UserData
值,把這個值作為動態顯示數據的變化步長。
點擊暫停按鈕時,如果按鈕被按下了則修改其UserData
的值為0,這樣步長就不變了,也就相當于把動畫暫停了
再次點擊該按鈕時,按鈕彈起,則修改其UserData
的值為原來的步長。
function MainFigure()
clc
close all
% 創建主窗口
hMain = figure('NumberTitle', 'off', 'Name', '暫停功能Demo', 'Menubar', 'none', 'Toolbar', 'none');
% 創建總布局
lay = uiextras.VBox('Parent', hMain);
% 創建子布局1
lay1 = uiextras.HBox('Parent', lay);
% 創建子布局2
lay2 = uiextras.HBox('Parent', lay);
% 創建坐標系
axMain = axes('Parent', lay1, 'NextPlot', 'replace', 'XTick', [], 'YTick', []);
lay1.Widths = -1;
% 創建開始按鈕
start_btn = uicontrol('Parent', lay2,...
'Style', 'pushbutton', ...
'String', '開始');
% 創建暫停按鈕
pause_btn = uicontrol('Parent', lay2,...
'Style', 'togglebutton', ...
'String', '暫停', ...
'UserData', 0.001);
% 設置布局2中的控件的寬度
lay2.Widths = [-1, -1];
% 設置總布局
lay.Heights = [-1, 32];
% 設置回調函數
start_btn.Callback = {@callback_start_btn, pause_btn, axMain};
pause_btn.Callback = {@callback_pause_btn};
end
function callback_start_btn(~, ~, pause_btn, ax)
x = -2 : 0.01 : 2;
p = 0.001; % 冪的初始值
while true
if p > 4 || p < 0
pause_btn.UserData = -pause_btn.UserData;
end
% 獲取冪的變化步長
p = p + pause_btn.UserData
% 計算當前冪運算后的函數值
y = abs(x).^p;
plot(x, y, 'Parent', ax);
pause(0.001)
drawnow
end
end
function callback_pause_btn(this, ~)
if this.Value == 1
this.UserData = 0;
this.String = '繼續';
else
this.UserData = 0.001;
this.String = '暫停';
end
end
以上是“MATLAB GUI動畫演示中暫停功能怎么實現”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。