溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MATLAB GUI動(dòng)畫演示中暫停功能怎么實(shí)現(xiàn)

發(fā)布時(shí)間:2021-12-30 17:24:09 來源:億速云 閱讀:288 作者:小新 欄目:大數(shù)據(jù)

小編給大家分享一下MATLAB GUI動(dòng)畫演示中暫停功能怎么實(shí)現(xiàn),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

先簡單說一下思路:

  • 把這個(gè)暫停按鈕設(shè)計(jì)成togglebutton

  • 把變化的步長放到這個(gè)togglebuttonUserData

  • 點(diǎn)擊開始時(shí),執(zhí)行一個(gè)死循環(huán),每次循環(huán)都獲取一下暫停按鈕的UserData值,把這個(gè)值作為動(dòng)態(tài)顯示數(shù)據(jù)的變化步長。

  • 點(diǎn)擊暫停按鈕時(shí),如果按鈕被按下了則修改其UserData的值為0,這樣步長就不變了,也就相當(dāng)于把動(dòng)畫暫停了

  • 再次點(diǎn)擊該按鈕時(shí),按鈕彈起,則修改其UserData的值為原來的步長。


function MainFigure()
clc
close all
% 創(chuàng)建主窗口
hMain = figure('NumberTitle', 'off', 'Name', '暫停功能Demo', 'Menubar', 'none', 'Toolbar', 'none');

% 創(chuàng)建總布局
lay = uiextras.VBox('Parent', hMain);
% 創(chuàng)建子布局1
lay1 = uiextras.HBox('Parent', lay);
% 創(chuàng)建子布局2
lay2 = uiextras.HBox('Parent', lay);

% 創(chuàng)建坐標(biāo)系
axMain = axes('Parent', lay1, 'NextPlot', 'replace', 'XTick', [], 'YTick', []);
lay1.Widths = -1;

% 創(chuàng)建開始按鈕
start_btn = uicontrol('Parent', lay2,...
   'Style', 'pushbutton', ...
   'String', '開始');

% 創(chuàng)建暫停按鈕
pause_btn = uicontrol('Parent', lay2,...
   'Style', 'togglebutton', ...
   'String', '暫停', ...
   'UserData', 0.001);

% 設(shè)置布局2中的控件的寬度
lay2.Widths = [-1, -1];

% 設(shè)置總布局
lay.Heights = [-1, 32];

% 設(shè)置回調(diào)函數(shù)
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
   % 計(jì)算當(dāng)前冪運(yùn)算后的函數(shù)值
   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 = '繼續(xù)';
else
   this.UserData = 0.001;
   this.String = '暫停';
end
end

以上是“MATLAB GUI動(dòng)畫演示中暫停功能怎么實(shí)現(xiàn)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI