MATLAB界面設(shè)計(jì)報(bào)告.doc_第1頁
MATLAB界面設(shè)計(jì)報(bào)告.doc_第2頁
MATLAB界面設(shè)計(jì)報(bào)告.doc_第3頁
MATLAB界面設(shè)計(jì)報(bào)告.doc_第4頁
MATLAB界面設(shè)計(jì)報(bào)告.doc_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

MATLAB課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目: 可視化界面 學(xué)生姓名: 何慶宇 學(xué)生學(xué)號: 2009045444023 專業(yè)班級: 09級通信工程(師范) 答辯時(shí)間: 指導(dǎo)教師: 馮明庫 廣東技術(shù)師范學(xué)院電子與信息學(xué)院一、設(shè)計(jì)目的及意義 學(xué)會綜合地運(yùn)用MATLAB工具箱設(shè)計(jì)出可以繪制一般常見圖像的GUI程序。同時(shí),加深對MATLAB的繪制圖像功能的認(rèn)識和設(shè)計(jì)GUI程序的一般方法的掌握。二、設(shè)計(jì)任務(wù)及指標(biāo)設(shè)計(jì)一個(gè)GUI界面程序,可以根據(jù)不同參數(shù)的輸入來繪制不同的螺旋線、內(nèi)擺線以及圓環(huán)圖像。熟悉和掌握MATLAB 程序設(shè)計(jì)方法;掌握MATLAB GUI 程序設(shè)計(jì);學(xué)習(xí)和熟悉MATLAB工具箱;學(xué)會運(yùn)用MATLAB工具箱繪制常見圖像。三、設(shè)計(jì)過程首先,啟動Matlab并進(jìn)入GUIDE環(huán)境:在Command Window下輸入“guide”,進(jìn)入GUIDE環(huán)境。然后在用戶界面編輯窗口添加4個(gè)命令按鈕(顯示是OK的用個(gè)PUSH BUTTON),再如下圖所示添加5個(gè)靜態(tài)文本框(Static Text)、5個(gè)編輯文本框(Edit Text)和一個(gè)坐標(biāo)系(Axes)。其次,按下表設(shè)置每個(gè)控件的屬性值(具體操作是:雙擊鼠標(biāo)左鍵要設(shè)置屬性的控件property inspector 命令在彈出的屬性窗口中找到相應(yīng)的屬性名稱將該屬性的值修改成自己需要的值)。各控件屬性修改值(表11)控件名屬性屬性修改值PushButton1FontSize16String螺旋線TagpushbuttonLxxPushButton2FontSize16String內(nèi)擺線TagpushbuttonNBXPushButton3FontSize16String圓旋轉(zhuǎn)成圓環(huán)TagpushbuttonCtoCPushButton4FontSize16String退出TagpushbuttonExitStatic Text1String大圓半徑Static Text2String小圓半徑Static Text3String修正值Static Text4String圓半徑Static Text5String離轉(zhuǎn)軸的距離Edit Text1String空或設(shè)置成一個(gè)適定值,如10TageditBCREdit Text2String空或設(shè)置成一個(gè)適定值,如2TageditSCREdit Text3String空或設(shè)置成一個(gè)適定值,如1TageditXZZEdit Text4String空或設(shè)置成一個(gè)適定值,如4TageditCREdit Text5String空或設(shè)置成一個(gè)適定值,如10TageditBExit注:上面控件名稱的編號,比如1,2之類,在界面上是沒有的,只是我按照從上到下的次序,為方便敘述而編寫的。最后,添加代碼(在添加代碼前,最好先將文件保存一下,比如以Exp8為文件名保存),添加程序代碼的常用方法是:單擊M-file Editor(如圖:)。下面真正添加自己的程序,最后成的程序如下:自己添加的程序用紅色表示。function varargout = Exp8(varargin)gui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, Exp8_OpeningFcn, . gui_OutputFcn, Exp8_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end%上面的是系統(tǒng)初始化代碼,絕對不要去修改它們。function Exp8_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject;guidata(hObject, handles);%這里選擇了一個(gè)圖片文件,作為初始畫面,具體的圖片可以選擇自己喜歡的。map1=imread(Water lilies.jpg);image(map1)%上面的代碼,告訴我們,一般的用戶界面的自己設(shè)置的初始化狀態(tài)應(yīng)添加在這個(gè)函數(shù)內(nèi)。function varargout = Exp8_OutputFcn(hObject, eventdata, handles)varargout1 = handles.output;%上面的函數(shù)返回的量直接到命令窗口。function pushbuttonLxx_Callback(hObject, eventdata, handles)%上面的函數(shù)是點(diǎn)擊螺旋線按鈕時(shí),執(zhí)行的代碼,即可以在此處添加有關(guān)螺旋線的程序代碼。axes(handles.axes1)clav=2;alf=pi/6;omg=pi/5;t=0:0.01:100;x=v*sin(alf).*cos(omg*t).*t;y=v*sin(alf).*sin(omg*t).*t;z=v*cos(alf).*t;%plot3(x,y,z)axis(-100 100 -100 100 0 160)grid onaxis equal oncomet3(x,y,z)%上面的程序是“一質(zhì)點(diǎn),沿著已知圓錐面的一條直母線自圓錐的頂點(diǎn)起,作等速直線運(yùn)動,另一方面這一條母線在圓錐面上,過圓錐的頂點(diǎn)繞圓錐的軸(旋轉(zhuǎn)軸)作等速的轉(zhuǎn)動,這時(shí)質(zhì)點(diǎn)在圓錐面上的軌跡”的動態(tài)形成過程。function pushbuttonNBX_Callback(hObject, eventdata, handles)%上面的函數(shù)是點(diǎn)擊內(nèi)擺線按鈕時(shí),執(zhí)行的代碼,即可以在此處添加有關(guān)內(nèi)擺線的程序代碼。axes(handles.axes1)claa=str2double(get(handles.editBCR,String);b=str2double(get(handles.editSCR,String);k=str2double(get(handles.editXZZ,String);axis(-a-2 a+2 -a-2 a+2 0 a+2)line(-a-2,a+2,0,0);hold online(0,0,-a-2,a+2);u=0:pi/30:2*pi;x=a*cos(u);y=a*sin(u);plot(x,y)x=b*cos(u)+a-b;y=b*sin(u);plot(x,y)axis equal ongrid ontheta=0:pi/1800:k*a*pi;x=(a-b)*cos(b/a*theta)+b*cos(a-b)/a*theta);y=(a-b)*sin(b/a*theta)-b*sin(a-b)/a*theta);comet(x,y)%上面的程序是內(nèi)擺線的動態(tài)的形成過程% - Executes on button press in pushbuttonExit.function pushbuttonExit_Callback(hObject, eventdata, handles)%上面的函數(shù)是點(diǎn)擊退出按鈕時(shí),執(zhí)行的代碼,即可以在此處添加退出時(shí)的程序代碼。ss=questdlg(你真的要退出嗎?,退出信息窗口!,不,我還想看看!,是的,我要退出!,是的,我要退出!);switch ss case 是的,我要退出! delete(handles.figure1);end%上面的程序是退出程序時(shí)信息窗口function editBCR_Callback(hObject, eventdata, handles)%上面的函數(shù)是 editBCR這個(gè)編輯文本按鈕回調(diào)時(shí),執(zhí)行的代碼。function editBCR_CreateFcn(hObject, eventdata, handles)if ispc set(hObject,BackgroundColor,white);else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor);end %上面的函數(shù)用來在程序中設(shè)置editBCR的屬性值。function editSCR_Callback(hObject, eventdata, handles)%上面的函數(shù)是editSCR這個(gè)編輯文本按鈕回調(diào)時(shí),執(zhí)行的代碼。function editSCR_CreateFcn(hObject, eventdata, handles)if ispc set(hObject,BackgroundColor,white);else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor);end %上面的函數(shù)用來在程序中設(shè)置editSCR的屬性值。 function editXZZ_Callback(hObject, eventdata, handles)%上面的函數(shù)是editXZZ這個(gè)編輯文本按鈕回調(diào)時(shí),執(zhí)行的代碼。function editXZZ_CreateFcn(hObject, eventdata, handles)if ispc set(hObject,BackgroundColor,white);else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor);end %上面的函數(shù)用來在程序中設(shè)置editXZZ的屬性值。function pushbuttonCtoC_Callback(hObject, eventdata, handles)%上面的函數(shù)是點(diǎn)擊圓旋轉(zhuǎn)成圓環(huán)按鈕時(shí),執(zhí)行的代碼,即可以在此處添加圓旋轉(zhuǎn)成圓環(huán)時(shí)的程序代碼。axes(handles.axes1)cla%a=4;%b=10;a=str2double(get(handles.editCR,String);b=str2double(get(handles.editDist,String);u=0:pi/30:2*pi;y=a.*cos(u)+b;z=a.*sin(u);n=length(u);x=0*ones(1,n);if ab axis(-b-2 b+2 -b-2 b+2 -a-2 a+2)elseaxis(-a-2 a+2 -a-2 a+2 -b-2 b+2)endplot3(x,y,z)pause(1)for t=0:pi/60:2*pi x=y.*sin(t); y1=y.*cos(t); plot3(x,y1,z) pause(0.1) grid on hold on %axis equal on %view(-20,0)end%上面的程序是圓旋轉(zhuǎn)成圓環(huán)的動態(tài)的形成過程function editCR_Callback(hObject, eventdata, handles)%上面的函數(shù)是editCR這個(gè)編輯文本按鈕回調(diào)時(shí),執(zhí)行的代碼。function editCR_CreateFcn(hObject, eventdata, handles)if ispc set(hObject,BackgroundColor,white);else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor);end %上面的函數(shù)用來在程序中設(shè)置editCR的屬性值。function editDist_Callback(hObject, eventdata, handles)function editDist_CreateFcn(hObject, eventdata, handles)if ispc set(hObject,BackgroundColor,white);else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor);end %上面的函數(shù)用來在程序中設(shè)置editDist的屬性值。添加代碼完畢后,點(diǎn)擊保存程序代碼,再單擊Run(如圖:)運(yùn)行已經(jīng)完成的程序,即可得到我們所想要的效果了。最后,如果還想要在界面添加背景顏色,那么還可以添加Select菜單項(xiàng)。首先將圖形窗口的MenuBar屬性設(shè)為figure,然后打開菜單編輯器,新建一個(gè)菜單項(xiàng),它的Lebel屬性設(shè)為Select,再在剛建的Select菜單項(xiàng)下建立子菜單項(xiàng),其Lebel屬性設(shè)為Yellow,把Callback屬性設(shè)為set(gcf,Color,y)。同理,再為Select建立一個(gè)子菜單項(xiàng),其Label屬性和Callback屬性分別設(shè)為Red和set(gcf,Color,r)。這時(shí)候再運(yùn)行程序就可以了。四、結(jié)論及分析 當(dāng)程序運(yùn)行成功后會出現(xiàn)以下界面: 主畫面(圖一)當(dāng)分別點(diǎn)擊按鈕“螺旋線”、“內(nèi)擺線”、“圓旋轉(zhuǎn)成圓環(huán)”和“退出”命令按鈕時(shí),分別出現(xiàn)如下列圖示的動態(tài)、靜態(tài)的結(jié)果: 螺旋線圖(圖二) 內(nèi)擺線圖(圖三) 退出信息圖(圖四)注意:你所選圖片格式與圖片名字要與讀入圖片文件的格式與文字要一致。比如在本程序設(shè)計(jì)中,添加圖片的代碼如下:map1=imread(Water lilies.jpg);image(map1)這時(shí)圖片的格式為jpg,名字為Water lilies。同時(shí),選用的圖片應(yīng)該把它放在與其它文件一起的同一個(gè)文件夾里。五、設(shè)計(jì)體會MATLAB不僅具有強(qiáng)大的數(shù)值運(yùn)算和符號計(jì)算功能,同時(shí)還具有非常強(qiáng)大的二維和三維繪圖功能,尤其擅長于各種科學(xué)運(yùn)算結(jié)果的可

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論