簡(jiǎn)單圖形用戶(hù)界面設(shè)計(jì)_第1頁(yè)
簡(jiǎn)單圖形用戶(hù)界面設(shè)計(jì)_第2頁(yè)
簡(jiǎn)單圖形用戶(hù)界面設(shè)計(jì)_第3頁(yè)
簡(jiǎn)單圖形用戶(hù)界面設(shè)計(jì)_第4頁(yè)
簡(jiǎn)單圖形用戶(hù)界面設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

和實(shí)驗(yàn)八簡(jiǎn)單圖形用戶(hù)界面設(shè)計(jì)[實(shí)驗(yàn)?zāi)康腯1.掌握簡(jiǎn)單的用戶(hù)界面設(shè)計(jì)方法。2.進(jìn)一步熟悉函數(shù)文件的編寫(xiě)技巧[實(shí)驗(yàn)原理]圖形用戶(hù)界面(GUI)以其友好和直觀(guān)性在軟件編程上被廣泛使用。WINDOWS操作系統(tǒng)就是一個(gè)經(jīng)典的圖形用戶(hù)界面操作系統(tǒng)。圖形用戶(hù)界面是由窗口、光標(biāo)、按鍵、菜單、文字說(shuō)明等對(duì)象構(gòu)成的一個(gè)用戶(hù)界面。用戶(hù)通過(guò)一定的方法(如鼠標(biāo)或鍵盤(pán))選擇、激活這些圖形對(duì)象,使計(jì)算機(jī)產(chǎn)生某種動(dòng)作或變化,比如簡(jiǎn)單的實(shí)現(xiàn)計(jì)算、繪圖等。MATLAB以它強(qiáng)大的科學(xué)計(jì)算及圖像生成功能著稱(chēng),同時(shí)它也提供了圖形用戶(hù)界面的設(shè)計(jì)和開(kāi)發(fā)功能。即通過(guò)MATLAB的圖形用戶(hù)界面,使得MATLAB的科學(xué)計(jì)算功能不僅僅是通過(guò)輸入一個(gè)個(gè)的函數(shù)代碼來(lái)實(shí)現(xiàn),還可以通過(guò)單擊按鈕和對(duì)話(huà)框等直觀(guān)的圖像來(lái)表達(dá)。通常如果只是進(jìn)行簡(jiǎn)單的數(shù)據(jù)處理、解方程等計(jì)算結(jié)果比較單一的工作,一般不用考慮GUI的制作。但是如果工作較為繁瑣,重復(fù)率較高,或者是向別人提供應(yīng)用程序,想進(jìn)行某種技術(shù)、方法的演示,制作圖像用戶(hù)界面將是一個(gè)較好的選擇。MATLAB的圖形用戶(hù)界面GUI的制作,即可通過(guò)M腳本文件直接編寫(xiě),也可通過(guò)MATLAB提供的用戶(hù)圖形界面開(kāi)發(fā)工具GUIDE來(lái)實(shí)現(xiàn)。通常我們選擇后者,可以開(kāi)發(fā)出界面布局合理、結(jié)構(gòu)較為復(fù)雜、功能較多的用戶(hù)界面。在MATLAB命令窗口輸入guide,確認(rèn)后就可以進(jìn)入到GUI的開(kāi)發(fā)環(huán)境下,如下圖所示:圖8.1GUI開(kāi)發(fā)環(huán)境可以看到,MATLAB的GUI開(kāi)發(fā)環(huán)境和VC、VB等程序語(yǔ)言的開(kāi)發(fā)環(huán)境非常類(lèi)似。設(shè)計(jì)用戶(hù)交互界面的過(guò)程就是把我們需要用到的控件從GUI開(kāi)發(fā)環(huán)境左側(cè)的控件調(diào)色板拖到中間的空間布局編輯區(qū),并使用隊(duì)列工具把這些控件排列整齊合理的過(guò)程。當(dāng)控件布局好后,可根據(jù)需要對(duì)每個(gè)控件通過(guò)各自的對(duì)象屬性查看器設(shè)置其相應(yīng)的屬性,如顯示在控件上的文本串、控件的標(biāo)識(shí)符、回調(diào)的例程等,最后再根據(jù)要求編寫(xiě)相應(yīng)的例程文件。[實(shí)驗(yàn)內(nèi)容]一.設(shè)計(jì)一個(gè)圖形用戶(hù)界面,通過(guò)調(diào)節(jié)滑塊可以畫(huà)出不同頻率的正弦波。并通過(guò)菜單可調(diào)節(jié)圖形界面的坐標(biāo)網(wǎng)格控制、退出程序等簡(jiǎn)單操作。彈出式菜單的回調(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))']);二.對(duì)于傳遞函數(shù)G=1/(s2+2ξs+1)的歸一化二階系統(tǒng),制作一個(gè)能繪制該系統(tǒng)單位階躍響應(yīng)的圖形用戶(hù)界面。要求:1.通過(guò)編輯框輸入阻尼比系數(shù)ξ后,可自動(dòng)繪出相應(yīng)的單位階躍相應(yīng)曲線(xiàn);初始化程序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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論