簡單圖形用戶界面設(shè)計_第1頁
簡單圖形用戶界面設(shè)計_第2頁
簡單圖形用戶界面設(shè)計_第3頁
簡單圖形用戶界面設(shè)計_第4頁
簡單圖形用戶界面設(shè)計_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

和實驗八簡單圖形用戶界面設(shè)計[實驗?zāi)康腯1.掌握簡單的用戶界面設(shè)計方法。2.進一步熟悉函數(shù)文件的編寫技巧[實驗原理]圖形用戶界面(GUI)以其友好和直觀性在軟件編程上被廣泛使用。WINDOWS操作系統(tǒng)就是一個經(jīng)典的圖形用戶界面操作系統(tǒng)。圖形用戶界面是由窗口、光標(biāo)、按鍵、菜單、文字說明等對象構(gòu)成的一個用戶界面。用戶通過一定的方法(如鼠標(biāo)或鍵盤)選擇、激活這些圖形對象,使計算機產(chǎn)生某種動作或變化,比如簡單的實現(xiàn)計算、繪圖等。MATLAB以它強大的科學(xué)計算及圖像生成功能著稱,同時它也提供了圖形用戶界面的設(shè)計和開發(fā)功能。即通過MATLAB的圖形用戶界面,使得MATLAB的科學(xué)計算功能不僅僅是通過輸入一個個的函數(shù)代碼來實現(xiàn),還可以通過單擊按鈕和對話框等直觀的圖像來表達。通常如果只是進行簡單的數(shù)據(jù)處理、解方程等計算結(jié)果比較單一的工作,一般不用考慮GUI的制作。但是如果工作較為繁瑣,重復(fù)率較高,或者是向別人提供應(yīng)用程序,想進行某種技術(shù)、方法的演示,制作圖像用戶界面將是一個較好的選擇。MATLAB的圖形用戶界面GUI的制作,即可通過M腳本文件直接編寫,也可通過MATLAB提供的用戶圖形界面開發(fā)工具GUIDE來實現(xiàn)。通常我們選擇后者,可以開發(fā)出界面布局合理、結(jié)構(gòu)較為復(fù)雜、功能較多的用戶界面。在MATLAB命令窗口輸入guide,確認后就可以進入到GUI的開發(fā)環(huán)境下,如下圖所示:圖8.1GUI開發(fā)環(huán)境可以看到,MATLAB的GUI開發(fā)環(huán)境和VC、VB等程序語言的開發(fā)環(huán)境非常類似。設(shè)計用戶交互界面的過程就是把我們需要用到的控件從GUI開發(fā)環(huán)境左側(cè)的控件調(diào)色板拖到中間的空間布局編輯區(qū),并使用隊列工具把這些控件排列整齊合理的過程。當(dāng)控件布局好后,可根據(jù)需要對每個控件通過各自的對象屬性查看器設(shè)置其相應(yīng)的屬性,如顯示在控件上的文本串、控件的標(biāo)識符、回調(diào)的例程等,最后再根據(jù)要求編寫相應(yīng)的例程文件。[實驗內(nèi)容]一.設(shè)計一個圖形用戶界面,通過調(diào)節(jié)滑塊可以畫出不同頻率的正弦波。并通過菜單可調(diào)節(jié)圖形界面的坐標(biāo)網(wǎng)格控制、退出程序等簡單操作。彈出式菜單的回調(diào)函數(shù)t=0:0.005:2*pi;y=sin(2.*pi.*w.*t);axes(handles.frequency_axes)plot(t,y)gridonzy2clear;clc;figure(1);t=0:0.01:2*pi;a=0:10;h.text=uicontrol('Style','text','Position',[1008020020],'String',['?μ?ê?a:2']);h.axes=axes('position',[0.20.40.50.5]);plot(t,sin(a*t));h.slider=uicontrol('Style','slider','Position',[1005020020],'Max',4,'Min',0,'callback',['fre=num2str(get(gcbo,''value''));','set(h_text,''String'',[''?μ?ê?a:'',fre]);','plot(t,sin(str2num(fre)*t))']);二.對于傳遞函數(shù)G=1/(s2+2ξs+1)的歸一化二階系統(tǒng),制作一個能繪制該系統(tǒng)單位階躍響應(yīng)的圖形用戶界面。要求:1.通過編輯框輸入阻尼比系數(shù)ξ后,可自動繪出相應(yīng)的單位階躍相應(yīng)曲線;初始化程序zeta=0.3;set(handles.edit1,'String',num2str(zeta))set(handles.slider1,'Value',zeta)set(handles.gridon,'Value',0)set(handles.gridoff,'Value',1)set(handles.listbox1,'Value',1)handles.t=0:0.05:15;handles.Color='Red';handles.zeta=zeta;handles.flg=0;handles=surfplot(handles)handles.flg=1;handles.Color='Blue';handles.output=hObject;guidata(hObject,handles);可編輯文本框的回調(diào)子函數(shù)sz=get(hObject,'String');zeta=str2double(sz);set(handles.slider1,'Value',zeta)handles.zeta=zeta;handles=surfplot(handles);guidata(hObject,handles);滑塊回調(diào)函數(shù)zeta=get(hObject,'Value');set(handles.edit1,'String',num2str(zeta))handles.zeta=zeta;handles=surfplot(handles);guidata(hObject,handles);單選按鍵回調(diào)子函數(shù)set(handles.gridoff,'Value',0)gridon列表框回調(diào)子函數(shù)listbox1=get(hObject,'Value');ifany(listindex==1)set(handles.listbox1,'Value',1)endhandles.flg=0;handles=surfplot(handles);handles.flg=1;guidata(hObject,handles);繪圖子函數(shù)functionhandles=surfplot(handles)zeta=handles.zeta;t=handles.t;listindex=get(handles.listbox1,'Value');Nt=length(t);ifhandles.flg==0clazmin=get(handles.slider1,'Min');zmax=get(handles.slider1,'Max');zt=zmin:0.05:zmax;Nz=length(zt);[ZT,T]=meshgrid(zt,t);Y=zeros(Nt,Nz);fork=1:Nz;Y(:,k)=step(tf(1,[1,2*zt(k),1]),t);endsurface(ZT,T,Y)shadingflatelsedelete(handles.gl)delete(handles.rline)endxz=ones(1,Nt)*zeta;y1=ones(1,Nt)*1;y=step(tf(1,[1,2*zt(k),1]),t);gz=[zeta,zeta,xz,zeta,zeta,xz];gt=[t(1),t(1),t,t(end),t(end),fliplr(t)];gy=[0,1,y1,1,0,0*y1];handles.gl=line(gz,gt,gy,'Color',handles.Color,'LineWidth',2);K=length(get(handles.listboxl,'Value'));forjj=1:k;switchlistindex(jj)case1case2k95=min(find(y>0.95));k952=[(k95-1),k95];t95=inter1(y(k952),t(k952),0.95);line(zeta,t95,0.95,'market','+','markeredgecolor','k','markersize',5);case3[ym,km]=max(y);ifkm<Nt&(ym-1)>0line(zeta,t(km),ym,'marker','.','markeredgecolor','k','markersize',5);endcase4ii=max(find(abs(y-1)>0.05));ifii<Ntline(zeta,t(ii+1),y(ii+1),'Color','r','Marker','o','MarkerSize',7)endendendxlabel('{\zeta}')ylabel('t')zlabel('y')alpha(0.7)view(75,44)functionhandles=surfplot(handles)zeta=handles.zeta;t=handles.t;listindex=get(handles.listbox1,'Value');Nt=length(t);ifhandles.flg==0clazmin=get(handles.slider1,'Min');zmax=get(handles.slider1,'Max');zt=zmin:0.05:zmax;Nz=length(zt);[ZT,T]=meshgrid(zt,t);Y=zeros(Nt,Nz);fork=1:Nz;Y(:,k)=step(tf(1,[1,2*zt(k),1]),t);endsurface(ZT,T,Y)shadingflatelsedelete(handles.gl)delete(handles.rline)endxz=ones(1,Nt)*zeta;y1=ones(1,Nt)*1;y=step(tf(1,[1,2*zt(k),1]),t);gz=[zeta,zeta,xz,zeta,zeta,xz];gt=[t(1),t(1),t,t(end),t(end),fliplr(t)];gy=[0,1,y1,1,0,0*y1];handles.gl=line(gz,gt,gy,'Color',handles.Color,'LineWidth',2);K=length(get(handles.listboxl,'Value'));forjj=1:k;switchlistindex(jj)case1case2k95=min(find(y>0.95));k952=[(k95-1),k95];t95=inter1(y(k952),t(k952),0.95);line(zeta,t95,0.95,'market','+','markeredgecolor','k','markersize',5);case3[ym,km]=max(y);ifkm<Nt&(ym-1)>0line(zeta,t(km),ym,'marker','.','markeredgecolor','k','markersize',5);endcase4ii=max(find(abs(y-1)>0.05));ifii<Ntline(zeta,t(ii+1),y(ii+1),'Color','r','Marker','o','MarkerSize',7)endendendxlabel('{\zeta}')ylabel('t')zlabel('y')alpha(0.7)view(75,44)functionhandles=surfplot(handles)zeta=handles.zeta;t=handles.t;listindex=get(handles.listbox1,'Value');Nt=length(t);ifhandles.flg==0clazmin=get(handles.slider1,'Min');zmax=get(handles.slider1,'Max');zt=zmin:0.05:zmax;Nz=length(zt);[ZT,T]=meshgrid(zt,t);Y=zeros(Nt,Nz);fork=1:Nz;Y(:,k)=step(tf(1,[1,2*zt(k),1]),t);endsurface(ZT,T,Y)shadingflatelsedelete(handles.gl)delete(handles.rline)endxz=ones(1,Nt)*zeta;y1=ones(1,Nt)*1;y=step(tf(1,[1,2*zt(k),1]),t);gz=[zeta,zeta,xz,zeta,zeta,xz];gt=[t(1),t(1),t,t(end),t(end),fliplr(t)];gy=[0,1,y1,1,0,0*y1];handles.gl=line(gz,gt,gy,'Color',handles.Color,'LineWidth',2);K=length(get(handles.listboxl,'Value'));forjj=1:k;switchlistindex(jj)case1case2k95=min(find(y>0.95));k952=[(k95-1),k95];t95=inter1(y(k952),t(k952),0.95);line(zeta,t95,0.95,'market','+','markeredgecolor','k','markersize',5);case3[ym,km]=max(y);ifkm<Nt&(ym-1)>0line(zeta,t(km),ym,'marker','.','markeredgecolor','k','markersize',5);endcase4ii=max(find(abs(y-1)>0.05));ifii<Ntline(zeta,t(ii+1),y(ii+1),'Color','r','Marker','o','MarkerSize',7)endendendxlabel('{\zeta}')ylabel('t')zlabel('y')alpha(0.7)view(75,44)functionhandles=surfplot(handles)zeta=handles.zeta;t=handles.t;listindex=get(handles.listbox1,'Value');Nt=length(t);ifhandles.flg==0clazmin=get(handles.slider1,'Min');zmax=get(handles.slider1,'Max');zt=zmin:0.05:zmax;Nz=length(zt);[ZT,T]=meshgrid(zt,t);Y=zeros(Nt,Nz);fork=1:Nz;Y(:,k)=step(tf(1,[1,2*zt(k),1]),t);endsurface(ZT,T,Y)shadingflatelsedelete(handles.gl)delete(handles.rline)endxz=ones(1,Nt)*zeta;y1=ones(1,Nt)*1;y=step(tf(1,[1,2*zt(k),1]),t);gz=[zeta,zeta,xz,zeta,zeta,xz];gt=[t(1),t(1),t,t(end),t(end),fliplr(t)];gy=[0,1,y1,1,0,0*y1];handles.gl=line(gz,gt,gy,'Color',handles.Color,'LineWidth',2);K=length(get(handles.listboxl,'Value'));forjj=1:k;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論