资源描述:
《握把式图形与GUI设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MATLAB程式設計入門篇握把式圖形與GUI設計張智星(RogerJang)jang@mirlab.orghttp://mirlab.org/jang清大資工系多媒體檢索實驗室握把式圖形(HandleGraphics)基本概念每一個構成圖形的基本單位都可視為一個物件(Object),例如:曲線、曲面、圖軸、文字…每個物件都有一個獨一無二的握把(Handle),就像每一個人都有一個獨一無二的身份證字號根據物件的握把,就可以存取圖形物件的所有性質圖形物件的階層結構圖形物件階層結構(Hierarchy)階層結構的一個例子圖形物件
2、的性質存取可以分兩種方法:以MATLAB所提供的圖形使用者介面(GUI,GraphicalUserInterface)進行圖形物件的性質存取以MATLAB命令列進行圖形物件的性質存取MATLAB的性質編輯器先畫完圖,再使用propedit開啟性質編輯器,例如>>peaks;%畫出peaks3D圖>>propedit;%開啟性質編輯器若不在命令列下達propedit,也可以點選工具列上面的圖示來開啟圖形編輯功能。進行圖形編輯啟動圖形編輯功能後,直接以滑鼠左鍵點選圖形物件(例如圖軸),然後點選右鍵選取所需要修改的性質,就可以達到
3、修改圖形的效果。圖形物件的性質存取以命令列進行圖形物件的性質存取set:設定某個性質的值get:取得某個性質的值findobj:在握把式圖形的階層式結構中,找出您要的物件set範例set範例:hg02.mt=0:0.1:4*pi;y=exp(-t/5).*sin(t);h=plot(t,y);%h為曲線的握把set(h,'Linewidth',3);%將曲線寬度改為3set(h,'Marker','o');%將曲線的線標改成小圓圈set(h,'MarkerSize',20);%將線標的大小改成20set範例單獨使用set(h
4、),可以列出h的所有性質,以及這些性質的可能值和預設值,例如:>>h=plot(humps);>>set(h,'linestyle')get範例get範例:>>get(h,'LineWidth')%取得曲線寬度ans=3;>>get(h,'Color')%取得曲線顏色ans=001>>get(h)%列出h的所有性質的值…findobj範例findobj範例:>>plot(rand(10,2));%畫出兩條曲線>>h=findobj(0,'type','line')%找出曲線的握把h=1.005174.0016>>set(h,
5、'LineWidth',3);%經由握把將曲線寬度改為3MATLABGUI程式設計MATLABGUI程式設計的兩種方式M檔案GUIDE發展環境M檔案M檔案的GUI設計UicontrolMouseEvents範例xpsound、travel、truss、lorenz等uicontrol範例1範例7-3:uicontrol01.mh=uicontrol;%產生按鈕set(h,'String','請按我!');%在按鈕表面加入文字「請按我!」cmd='fprintf(''有人按我一下喔!'');';%定義按鈕被按後的反應指令s
6、et(h,'Callback',cmd);%設定按鈕的反應指令uicontrol範例1UI控制物件Uicontrol產生UI(UserInterface)控制物件按鈕(PushButton)滑動棒(SlidingBar)圓形按鈕(RadioButton)框架(Frame)核計方塊(CheckBox)文字欄位(EditBox)列表式選單(ListMenu)下拉式選單(PopupMenu)uicontrol範例2:uicontrol02.mcloseall%關閉所有圖形視窗uicontrol('style','push','po
7、sition',[200208030]);uicontrol('style','slide','position',[200708030]);uicontrol('style','radio','position',[2001208030]);uicontrol('style','frame','position',[2001708030]);uicontrol('style','check','position',[2002208030]);uicontrol('style','edit','position',[2002
8、708030]);uicontrol('style','list','position',[2003208030],'string','1
9、2
10、3
11、4');uicontrol('style','popup','position',[2003708030],'string','one
12、two