4MATLAB圖形界面制作(GUI)與句柄圖形教學(xué)課件_第1頁
4MATLAB圖形界面制作(GUI)與句柄圖形教學(xué)課件_第2頁
4MATLAB圖形界面制作(GUI)與句柄圖形教學(xué)課件_第3頁
4MATLAB圖形界面制作(GUI)與句柄圖形教學(xué)課件_第4頁
4MATLAB圖形界面制作(GUI)與句柄圖形教學(xué)課件_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

圖形用戶界面的作用假如進(jìn)行數(shù)據(jù)分析、解方程等計(jì)算結(jié)果比較單一的工作,那么一般不會(huì)考慮GUI的制作。但是如果想向別人提供應(yīng)用程序,想進(jìn)行某種技術(shù)、方法的演示,想制作一個(gè)供反復(fù)使用且操作簡單的專用工具,那么圖形用戶界面也許是最好的選擇之一。

7/22/20231設(shè)計(jì)原則

由于要求不同,設(shè)計(jì)出來的界面也就千差萬別。但是,自從人們開始設(shè)計(jì)圖形界面以來,界面設(shè)計(jì)的評判標(biāo)準(zhǔn)卻沒有太大的變化。簡單來說,一個(gè)好的界面應(yīng)遵循以下三個(gè)原則:(1)簡單性:設(shè)計(jì)界面時(shí),力求簡潔、直觀、清晰地體現(xiàn)出界面的功能和特征。(2)一致性:所謂一致性有兩層含義:一是讀者自己開發(fā)的界面風(fēng)格要盡量一致;二是新設(shè)計(jì)的界面要與其他已有的界面風(fēng)格不要截然相左。這是因?yàn)橛脩粼诔醮问褂眯陆缑鏁r(shí),總習(xí)慣于憑經(jīng)驗(yàn)進(jìn)行試探。比方說,圖形顯示區(qū)常安排在界面左半邊,而按鍵等控制區(qū)被排在右側(cè)。(3)其他考慮因素:除了以上對界面的靜態(tài)要求外,還應(yīng)注意界面的動(dòng)態(tài)性能。如界面對用戶操作的響應(yīng)要迅速、連續(xù);對持續(xù)時(shí)間較長的運(yùn)算,要給出等待時(shí)間提示,并允許用戶中斷運(yùn)算。

7/22/20232一般制作步驟

界面制作包括界面設(shè)計(jì)和程序?qū)崿F(xiàn)。具體制作步驟如下:(1)分析界面所要求實(shí)現(xiàn)的主要功能,明確設(shè)計(jì)任務(wù)。(2)構(gòu)建界面草圖,并站在使用者的角度來審查草圖。(3)按構(gòu)思的草圖.制作(靜態(tài))界面并檢查。(4)編寫界面動(dòng)態(tài)功能的程序,對功能進(jìn)行逐項(xiàng)檢查。[說明]以上過程,僅是一般原則。在設(shè)計(jì)中,步驟之間也許要交叉執(zhí)行或復(fù)合執(zhí)行。設(shè)計(jì)和實(shí)現(xiàn)過程往往需要反復(fù)修改才能獲得滿意的界面。建議先進(jìn)行界面布局編碼,后進(jìn)行動(dòng)態(tài)交互功能的編碼。

7/22/20233界面編程需要注意的事項(xiàng)用戶界面適合軟件的功能(合適性)。是指用戶界面與軟件功能相融洽的程度。要避免用戶的誤解、費(fèi)解等。另外,不能為適應(yīng)某種體系結(jié)構(gòu)的優(yōu)勢而導(dǎo)致界面的不合適性。容易理解。如果通過界面難以理解界面的意圖,使用起來一定費(fèi)力。容易理解是容易應(yīng)用的前提。要做到這一點(diǎn):(1)界面中不能有錯(cuò)字。(2)圖標(biāo)按鈕含義直觀明了。(3)界面元素提供充分而必要的提示。(4)界面結(jié)構(gòu)能夠清晰的反映工作流程,以便用戶操作。及時(shí)反饋信息。防錯(cuò)處理。風(fēng)格一致和必要的個(gè)性化。風(fēng)格一致的好處是可以減少用戶的記憶量,減少出錯(cuò)幾率,并迅速積累操作經(jīng)驗(yàn)。必要個(gè)性化是使用戶對軟件留下深刻印象。合理布局。合理色彩。難,不同的人對顏色的喜好不同。另外不可過分依靠色彩,因?yàn)橛脩粲锌赡苁巧せ蛏酢_m應(yīng)用戶群體和國際化。最少的操作步驟??梢詮?fù)用。不同的界面效果直接影響相關(guān)感受,所以精心設(shè)計(jì)很有必要。請看示例7/22/20234設(shè)計(jì)過程是否滿足要求添加動(dòng)態(tài)功能制作靜態(tài)界面構(gòu)建界面草圖,并審查明確設(shè)計(jì)任務(wù)7/22/20235示例好的界面方便功能色彩簡潔7/22/20236設(shè)計(jì)工具(GUIDE)

為了能夠簡單、方便地進(jìn)行GUI的設(shè)計(jì)與開發(fā)工作,MATLAB提供了一套方便、實(shí)用的GUI設(shè)計(jì)工具。MATLAB中的GUI設(shè)計(jì)工具包括以下幾個(gè):對象設(shè)計(jì)編輯器(LayoutEditor)(有的書上成為布局編輯器):

在圖形窗口內(nèi)創(chuàng)建、安排各種對象。菜單編輯器(MenuEditor):創(chuàng)建、設(shè)置、修改下拉式菜單和內(nèi)容式菜單;對象屬性查看器(PropertyInspector):可查看每個(gè)對象的屬性值,也可修改、設(shè)置對象的屬性值;7/22/20237對象設(shè)計(jì)編輯器(LayoutEditor)在MATLAB命令窗口內(nèi),選擇File主菜單的New子菜單,會(huì)看到一個(gè)GUI的二級子菜單,單擊它,就會(huì)顯示對象設(shè)計(jì)編輯器(LayoutEditor);也可以在MATLAB命令窗口的命令行上輸入guide,顯示對象設(shè)計(jì)編輯器。啟動(dòng)窗口如右圖所示。

7/22/20238對象設(shè)計(jì)編輯器(LayoutEditor)7/22/20239菜單編輯器

利用菜單編輯器,可以創(chuàng)建、設(shè)置、修改下拉式菜單和內(nèi)容式菜單。從對象設(shè)計(jì)編輯器界面的工具條上或從菜單欄中Tools的下拉菜單中選擇MenuEditor,就可以看到菜單編輯器(MenuEditor)的界面,如右圖所示。

7/22/202310菜單編輯器(2)圖中左上角第一個(gè)按鈕用于創(chuàng)建下拉式菜單。用戶可以通過點(diǎn)擊它,來創(chuàng)建下拉式主菜單。第二個(gè)按鈕用于創(chuàng)建下拉式主菜單的子菜單,在選中已經(jīng)創(chuàng)建的下拉式主菜單后,可以單擊這個(gè)按鈕來創(chuàng)建選中的下拉式主菜單的子菜單。選中創(chuàng)建的某個(gè)下拉式菜單,菜單編輯器的右邊就會(huì)顯示該菜單的有關(guān)屬性,可以在這里設(shè)置、修改菜單的屬性。

菜單編輯器界面的左下角有兩個(gè)按鈕,選擇第一個(gè)按鈕,可以創(chuàng)建下拉式菜單,選擇第二個(gè)按鈕,可以創(chuàng)建contextMenu菜單(類似于彈出式菜單)。選擇它后,圖中左上角的第三個(gè)按鈕就會(huì)變成可用,單擊它可以創(chuàng)建ContextMenu主菜單。在選中已經(jīng)創(chuàng)建的ContextMenu主菜單后,可以單擊第二個(gè)按鈕創(chuàng)建選中的ContextMenu主菜單的子菜單。與下拉式菜單一樣,選中創(chuàng)建的某個(gè)ContextMenu菜單,菜單編輯器的右邊就會(huì)顯示該菜單的有關(guān)屬性,可以在這里設(shè)置、修改菜單的屬性。

7/22/202311對象屬性查看器

利用對象屬性查看器,可以查看每個(gè)對象的屬性值,也可以修改、設(shè)置對象的屬性值,從對象設(shè)計(jì)編輯器界面工具條,或者選擇view菜單下的InspectProperty子菜單,就可以看到對象屬性查看器的界面。另外,在MATLAB命令窗口的命令行上輸入inspect,也可以看到對象屬性查看器。如右圖所示。

7/22/202312圖形界面制作-菜單在絕大多數(shù)的圖形用戶界面下,都包含有菜單。通過選擇各級菜單,可以執(zhí)行相應(yīng)的命令,實(shí)現(xiàn)相應(yīng)的功能。一般地,從菜單的標(biāo)題或名字可以大概了解該菜單的功能。在Windows系統(tǒng)中,菜單一般位于用戶圖形界而的頂端。例如,MATLAB的主窗口中,就有一個(gè)主菜單欄,包括File、Edit、View、Help等主菜單。在各級主菜單下,還有相應(yīng)的子菜單。在MATLAB圖形用戶界面(GUI)設(shè)計(jì)中,有兩種菜單類型,分別是下拉式菜單類型Uimenu和內(nèi)容式菜單類型Uicontextmenu。

7/22/202313圖形界面制作-菜單(2)菜單的建立:

在MATLAB中,可以通過命令行方式和GUI設(shè)計(jì)工具中的菜單編輯器兩種方式建立菜單:(1)命令行方式:在命令行方式下,可以通過函數(shù)uimenu建立下拉式菜單對象。(2)GUI設(shè)計(jì)工具-菜單編輯器方式。菜單的屬性:

利用函數(shù)uimenu建立菜單時(shí),可以定義菜單屬性的屬性值;利用函數(shù)set,可以設(shè)置、改變屬性的屬性值;利用get函數(shù),可以獲得菜單屬性的屬性值,也可以通過PropertyInspectorGUI設(shè)計(jì)工具來設(shè)置、修改菜單屬性值。7/22/202314圖形界面制作-控件在絕大多數(shù)的圖形用戶界面下,都包含有控件??丶菆D形對象,它與菜單一起用于建立圖形用戶界面。通過使用各種類型的控件,可以建立起操作簡便,功能強(qiáng)大的圖形用戶界面。MATLAB也提供了多種控件,可以把它們放置在圖形窗口的任何位置,并用鼠標(biāo)激活它們。MATLAB支持的控件對象有10種。

7/22/202315控件對象類型

MATLAB支持復(fù)選框Checkboxes、可編輯文本框Edittext,框架Frames、列表框Listboxes、彈出式菜單Pop-upmenus、命令按鈕Pushbuttons、單選按鈕Radiobuttons、滑標(biāo)Sliders、靜態(tài)文本框Statictext、開關(guān)按鈕Togglebuttons等十種類型的控件對象

7/22/202316控件對象類型(1)(1)復(fù)選框(Checkboxes)復(fù)選框有一個(gè)標(biāo)志文本,在標(biāo)志文本的左邊有一個(gè)小方框。它對于用戶進(jìn)行大量的獨(dú)立選擇很有用。為了激活復(fù)選框,可以使用鼠標(biāo)單擊復(fù)選框?qū)ο?,使?fù)選框在選中與不選中狀態(tài)間進(jìn)行切換。當(dāng)選中時(shí),復(fù)選框的value屬性值是1;當(dāng)沒有選中時(shí),復(fù)選框的小方框內(nèi)為空,此時(shí)復(fù)選框的value屬性值為0。復(fù)選框的Sytle屬性值是checkbox。

(2)可編輯文本框(Edittext)當(dāng)需要輸入文本時(shí),可以使用可編輯文本框。通過可編輯文本框,用戶可以方便地輸入或修改已經(jīng)存在的文本串,這與文本編輯器的功能是一樣的??删庉嬑谋究虻腟tring屬性中存儲(chǔ)輸入的文本串。可編輯文本框可以是單行或多行文本模式。當(dāng)可編輯文本框是單行模式時(shí),只允許輸入單行文本串;當(dāng)可編輯文本框是多行模式時(shí),可以輸入多行文本??删庉嬑谋究虻腟tyle屬性值是edit。7/22/202317控件對象類型(2)(3)框架(Frames)

框架對象是在圖形窗口內(nèi),視覺上封閉起來的一個(gè)區(qū)域,只有控件可以在框架中使用。一般把作用相關(guān)的一組控件用框架框起來,這樣的用戶界面很容易被用戶理解??蚣軟]有Callback例程??蚣苁遣煌该鞯?,所以設(shè)置框架與框架中控件的順序很重要。如果框架內(nèi)控件先于框架被設(shè)置,那么框架設(shè)置后就會(huì)覆蓋原先設(shè)置的控件?!愕?,應(yīng)在定義框架后再定義框架中的控件。框架的style屬件值是frame。

(4)列表框(Listboxes)

列表框中列出其String屬性的字符串項(xiàng)。用戶可以方便的選擇一個(gè)或多個(gè)列表項(xiàng)。列表框的Max和Min屬性控制選擇模式;Value屬性標(biāo)明選擇的列表項(xiàng)的索引值。當(dāng)列表框上的鼠標(biāo)松開后,MATLAB會(huì)調(diào)用Callback例程。一般地,單擊與雙擊列表框的效果是不一樣的。列表框的Style屬性值是listbox。

7/22/202318控件對象類型(3)(5)彈出式菜單(Pop-upmenus)彈出式菜單是一個(gè)顯示信息的框,框的右邊有一個(gè)下拉式箭頭。單擊下拉式箭頭,就會(huì)顯示一個(gè)列表,里面包含String屬性定義的屬性值。當(dāng)沒有打開列表時(shí),信息框內(nèi)顯示的是當(dāng)前選擇的表項(xiàng)。當(dāng)打開列表,從中選揮一個(gè)表項(xiàng)并單擊后,該表項(xiàng)就會(huì)出現(xiàn)在信息顯示框內(nèi)。彈出式菜單對于用戶進(jìn)行大量的互相不同的選擇是很有用的。如果不用彈出式菜單,那么就必須設(shè)置大量互不相同的單選按鈕。彈出式菜單的Style屬性值是popupmenu。

(6)命令按鈕(Pushbuttons)命令按鈕是一個(gè)矩形的凸出對象。在命令按鈕對象上標(biāo)有一個(gè)字符串,用于標(biāo)識(shí)該命令按鈕。單擊命令按鈕,會(huì)產(chǎn)生相應(yīng)的動(dòng)作。用鼠標(biāo)單擊命令按鈕后,命令按鈕會(huì)凹下,但當(dāng)松開鼠標(biāo)后,命令按鈕又會(huì)彈起,這與下面的開關(guān)按鈕不同。命令按鈕的Style屬性值是Pushbunton。

7/22/202319控件對象類型(4)(7)單選按鈕(Radiobuttons)與復(fù)選框相似,單選按鈕有一個(gè)標(biāo)志文本,在標(biāo)志文本的左邊有一個(gè)小圓圈,它對于用戶進(jìn)行功能互斥的選擇很有用。在一組單選按鈕中,一次只能有一個(gè)單選按鈕被選中,這與可以同時(shí)選中多個(gè)的復(fù)選框不同。為了激活單選按鈕,可以使用鼠標(biāo)單擊單選按鈕對象,使單選按鈕在選中與不選中狀態(tài)間進(jìn)行切換。當(dāng)選中時(shí),復(fù)選框的小圓圈內(nèi)有一個(gè)點(diǎn),此時(shí)單選按鈕的value屬性值是1;當(dāng)沒有選中時(shí),單選按鈕的小圓圈內(nèi)為空,此時(shí)單選按鈕的value屬性值為0。單選按鈕的style屬性值是radiobutton。(8)滑標(biāo)(Sliders)其功能類似于滾動(dòng)條,它由三個(gè)部分組成,分別是滾動(dòng)槽、滾動(dòng)槽內(nèi)的指示條和滾動(dòng)槽兩端的箭頭。其中,滾動(dòng)槽表明滑標(biāo)的有效值范圍,指示條表明滑標(biāo)的當(dāng)前值,通過箭頭可以左右移動(dòng)指示條。用戶在選中指示條后通過鼠標(biāo)拖動(dòng)指示條,可以改變滑標(biāo)的值,也可以通過單擊兩端的箭頭來改變滑標(biāo)的值??梢酝ㄟ^函數(shù)設(shè)置滑標(biāo)的最小值、最大值與當(dāng)前值?;瑯?biāo)的Style屬性值是slider。7/22/202320控件對象類型(5)(9)靜態(tài)文本框(Statictext)靜態(tài)文本框靜態(tài)顯示文本字符申。靜態(tài)文本框通常用于顯示別的控件的有義信息。例如,如果與滑標(biāo)相連,可以在靜態(tài)文本框中顯示滑標(biāo)的當(dāng)前值。與可編輯文本框不同,用戶不能交量地改變靜態(tài)文本框中的內(nèi)容。靜態(tài)文本框沒有Callback例程。靜態(tài)文本框的Style屬性值是text。(10)開關(guān)按鈕(Togglebuttons)

開關(guān)按鈕的外觀與命令按鈕類似,是一個(gè)矩形的凸出對象,同時(shí)在開關(guān)按鈕對象上也標(biāo)有一個(gè)字符串,用于標(biāo)識(shí)該開關(guān)按鈕。與命令按鈕不同的是,當(dāng)用鼠標(biāo)單擊開關(guān)按鈕并松開后,開關(guān)按鈕不會(huì)彈起。再單擊一次,它才會(huì)彈起,這可以表明開關(guān)按鈕的狀態(tài)。單擊開關(guān)按鈕,會(huì)產(chǎn)生相應(yīng)的動(dòng)作,執(zhí)行相應(yīng)的Callback例程。在進(jìn)行工具條的設(shè)計(jì)時(shí),開關(guān)按鈕時(shí)非常有用的。開關(guān)按鈕的Style屬性值是togglebutton。7/22/202321控件的建立

與菜單對象一樣,可以通過命令行方式與GUI設(shè)計(jì)工具兩種方式來建立控件。

(1)命令行方式:在命令行方式下,可以通過函數(shù)uicontrol來建立控件對象。(2)GUI設(shè)計(jì)工具:利用GUI設(shè)計(jì)工具中的對象設(shè)計(jì)編輯器(LayoutEditor),可以容易地創(chuàng)建MATLAB支持的各種控件,而且通過對象屬性查看器(ObjectInspector),可以方便地修改、設(shè)置創(chuàng)建的控件的屬性值。

注意:命令行方式常常用于動(dòng)態(tài)修改界面外觀,比如執(zhí)行到某種功能出現(xiàn)某個(gè)按鈕,GUI設(shè)計(jì)工具常常用于最初的界面設(shè)計(jì)。7/22/202322控件的屬性

在命令行的方式下或者GUI設(shè)計(jì)方式下,可以方便的設(shè)置、修改控件屬性的屬性值。在命令行方式下,利用uicontrol建立控件時(shí),可以定義控件屬性的屬性值;利用函數(shù)set可以設(shè)置、改變屬性的屬性值;利用函數(shù)get可以獲得屬性的屬性值。在GUI設(shè)計(jì)方式下,也可以通過PropertyInspectorGUI設(shè)計(jì)工具來設(shè)置控件的屬性值。

7/22/202323編寫GUI代碼(1)

當(dāng)我們利用GUIDE完成一個(gè)應(yīng)用程序界面布局設(shè)計(jì)后,保存設(shè)計(jì)結(jié)果時(shí),MATLAB將其保存為后綴為.fig的一個(gè)文件,并自動(dòng)生成的一個(gè)與之同名的M文件。這個(gè)M文件是控制GUI的一個(gè)程序框架,正是這個(gè)程序框架,促進(jìn)了一種高效穩(wěn)健的編程風(fēng)格。應(yīng)用M文件包含了callback函數(shù)在內(nèi)的所有代碼,每一個(gè)回調(diào)函數(shù)在M文件中用子程序的形式出現(xiàn)。

GUIDE自動(dòng)為其添加到M文件中的callback子程序命名,它還將回調(diào)屬性的值設(shè)置為一個(gè)字符串,保證用戶在激活控件時(shí)運(yùn)行這一子程序。我們已經(jīng)看到,在GUI布局中添加元件時(shí),GUIDE先為該元件的Tag屬性分配一個(gè)數(shù)值,再以此命名回調(diào)函數(shù)。比方說,在布局中添加的第一個(gè)pushbutton被稱為pushbutton1,GUIDE在M文件中添加的callback子程序被命名為pushbutton1_Callback;我們?nèi)绻胍獙?shí)現(xiàn)按下該按鈕進(jìn)行某種操作,就可以在應(yīng)用M文件中找到pushbutton1_Callback的位置,對該子程序進(jìn)行編碼,以實(shí)現(xiàn)我們需要的操作即可。

7/22/202324GUI編程舉例功能:(1)在點(diǎn)擊【Gridon】或【Gridoff】按鈕時(shí),在軸上畫出或刪除“分格線”;缺省時(shí),無分格線。(2)在菜單【Options】下,有2個(gè)下拉菜單項(xiàng)【Boxon】和【Boxoff】;其功能和兩個(gè)按鈕的一樣。7/22/202325第一步打開GUIDE工具,編輯初始界面。7/22/202326第二步設(shè)置各控件的屬性7/22/202327第三步調(diào)整各控件的位置7/22/202328第四步制作菜單(利用MenuEditor)7/22/202329第五步M文件編程運(yùn)行結(jié)果7/22/202330句柄圖形圖形細(xì)致處理和界面編程的基礎(chǔ)7/22/202331句柄圖形對象MATLAB圖形繪制系統(tǒng)是由兩個(gè)層次組成的:用于提供用戶友好的繪圖功能的高級層次和用于創(chuàng)建及操作線、面、文字、投影等基本圖形對象的低級函數(shù)。高級功能是建立在低級函數(shù)的基礎(chǔ)之上的,它為用戶的圖形繪制提供了極大的方便,因?yàn)樗灰笥脩羧ゲ僮骶€、面等的細(xì)節(jié)。但是使用低級的繪圖函數(shù)也有其優(yōu)越性,它能提供對圖形的各個(gè)基本對象的更細(xì)致的控制,不僅可以產(chǎn)生更加復(fù)雜的圖形,也為動(dòng)態(tài)的繪制圖形提供了基礎(chǔ)。MATLAB的這個(gè)低級函數(shù)系統(tǒng)稱為句柄圖形(HandleGraphics)。7/22/202332圖形對象和對象句柄圖形對象

MATLAB把用于數(shù)據(jù)可視和界面制作的基本繪圖要素稱為句柄圖形對象(HandleGraphicobject)。構(gòu)成MATLAB句柄圖形體系的共有11個(gè)圖形對象,每個(gè)圖形對象都可以被獨(dú)立操作。句柄

每個(gè)具體對象都有一個(gè)“與生俱來、終生不變”的獨(dú)特標(biāo)志,即句柄(Handle)。句柄是存取操作圖形對象的唯一規(guī)范標(biāo)識(shí)符。不同對象的句柄不可能重復(fù)和混淆。7/22/202333句柄圖形對象的層次結(jié)構(gòu)圖形對象包括:根屏幕(RootScreen)、圖(Figure)、軸(Axes)、線(Line)、塊(Pathes)、面(Surface)、圖像(Image)、文字(Text)、用戶界面控制(UserInterfaceControl)和用戶界面菜單(UserInterfaceMesnus)。這些對象的層次結(jié)構(gòu)為下圖樹狀結(jié)構(gòu)所示:

7/22/202334句柄圖形對象的層次結(jié)構(gòu)(2)處于樹結(jié)構(gòu)最高層的圖形對象是根屏幕。是所有其他圖形對象的“父(parent)”。圖形窗有三個(gè)不同的“子”:軸、界面控制和界面菜單。后兩類用于制作用戶圖形界面,實(shí)現(xiàn)對人機(jī)交互操作。軸有7種不同類型的“子”:線、面、方、塊、圖像、字和光。7/22/202335圖形對象的屬性屬性

所有的圖形對象都有一組定義和刻畫其外貌特征的屬性(Properties)。屬性又由兩部分組成:屬性名和屬性值,即屬性二元對(Property_Name,Property_Value)在操作屬性的指令中,屬性名和屬性值總是成對出現(xiàn)。屬性名是英文字符串。該英文詞組每個(gè)單詞首字母大寫且單詞間沒有空格。例如:’LineStyle’。這樣書寫便于閱讀。但在指令中引用屬性名時(shí),為用戶書寫方便,MATLAB采取了兩個(gè)措施:第一,不分字母大小寫,都同樣識(shí)別,第二,只要不引起歧義,屬性名不用寫全。如:用‘LineStyle’時(shí)只輸入‘line’就可以識(shí)別。缺省屬性

在創(chuàng)建圖形對象時(shí),MATLAB并不需要用戶對每個(gè)屬性加以定義。因?yàn)橹灰脩魶]有特別指定,MATLAB會(huì)自動(dòng)給每個(gè)圖形對象的每個(gè)屬性賦予“廠家定義(Factory-defined)”的屬性值。如果用戶對MATLAB默認(rèn)的屬性不滿意,可以通過指令對相應(yīng)的屬性進(jìn)行修改,或在創(chuàng)建圖形對象的時(shí)候就直接指定。7/22/202336圖形對象的操作圖形對象的創(chuàng)建指令除根屏幕外,所有圖形對象都由與之同名的指令創(chuàng)建。這些指令均為MATLAB內(nèi)建函數(shù),每個(gè)指令在創(chuàng)建對象的同時(shí),還可返回該對象的句柄。每個(gè)底層函數(shù)只能創(chuàng)建這11個(gè)圖形對象中的一個(gè),并將它們置于適當(dāng)?shù)母篙厡ο笾?。例如:line指令的操作是在當(dāng)前畫軸上利用缺省屬性畫“線”。如果調(diào)用此指令前圖形窗口和畫軸不存在,,則MATLAB會(huì)自動(dòng)創(chuàng)建它們,如果已經(jīng)存在,則這條“線”將畫在當(dāng)前軸上,且不影響該軸上的已有的其他對象。(這與高層繪圖指令不同)。這個(gè)特點(diǎn)非常重要,特別是當(dāng)圖形僅有一部分需要改變時(shí)。7/22/202337圖形對象創(chuàng)建指令一覽表指令名功能調(diào)用格式figure創(chuàng)建圖形窗H=figure(n)n為正整數(shù)。打開或創(chuàng)建第n號(hào)圖形窗口axes創(chuàng)建畫軸H=axes(‘position’,[left,width,height])定義畫軸坐標(biāo)的位置和尺寸line創(chuàng)建線H=line(x,y,z)繪制向量x、y、z確定的直線,如果不指定z,則在x-y平面上畫線surface創(chuàng)建面H=surface(x,y,z,c)x、y、z定義的三維曲面,c為色彩矩陣rectangle創(chuàng)建方H=rectangle(‘position’,[x,y,w,h],’curvature’,[xc,yc])xy左下頂點(diǎn)坐標(biāo),w、h為寬和高,xc和yc為曲率patch創(chuàng)建塊H=patch(‘faces’,fac,’vertices’,vert)ver為頂點(diǎn)矩陣,fac定義多邊形的頂點(diǎn)序號(hào)矩陣image創(chuàng)建圖像H=image(x)x為圖像數(shù)據(jù)矩陣text創(chuàng)建字H=text(x,y,’string’)x、y指定字符串‘string’的標(biāo)注位置light創(chuàng)建光H=light(‘position’,[100])設(shè)置入射光的方向。它影響面、塊等對象的色彩渲染uicontrol創(chuàng)建控件H=uicontrol(‘property’,value)指定界面控件的類型等屬性uimenu創(chuàng)建菜單H=uimenu(‘property’,value)指定界面菜單的形式等屬性7/22/202338圖形對象的句柄獲得方法從圖形創(chuàng)建指令獲取句柄

H=GraphicCommand(…)如:H=figure(n)追溯法獲取句柄

如果一個(gè)對象的句柄已知,可以用如下格式獲得其父或子對象的句柄。H_pa=get(H_known,’Parent’)H_ch=get(H_known,’Children’)當(dāng)前對象句柄的獲取

MATLAB有如下三個(gè)專用獲取圖形句柄的指令:前兩個(gè)是直接指令,后一個(gè)是和鼠標(biāo)配合使用。(1)gcf:獲得當(dāng)前圖形窗口的句柄(2)gca:獲得當(dāng)前軸的句柄;(3)gco:獲得當(dāng)前對象的句柄(被鼠標(biāo)最近點(diǎn)擊的圖形對象):根據(jù)對象的特性獲取句柄H=findobj(H_ori,PN,PV)在H_ori指定的對象上,尋找與屬性對(PN,PV)匹配的對象句柄。7/22/202339句柄獲取示例例1:創(chuàng)建時(shí)獲得句柄

t=0:0.01:2*pi;h=plot(t,sin(t),’b’);例2:追溯法獲得句柄H_pa=get(h,’Parent’)

溫馨提示

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

最新文檔

評論

0/150

提交評論