




已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
MATLAB課程設(shè)計報告設(shè)計題目: 可視化界面 學生姓名: 何慶宇 學生學號: 2009045444023 專業(yè)班級: 09級通信工程(師范) 答辯時間: 指導教師: 馮明庫 廣東技術(shù)師范學院電子與信息學院一、設(shè)計目的及意義 學會綜合地運用MATLAB工具箱設(shè)計出可以繪制一般常見圖像的GUI程序。同時,加深對MATLAB的繪制圖像功能的認識和設(shè)計GUI程序的一般方法的掌握。二、設(shè)計任務及指標設(shè)計一個GUI界面程序,可以根據(jù)不同參數(shù)的輸入來繪制不同的螺旋線、內(nèi)擺線以及圓環(huán)圖像。熟悉和掌握MATLAB 程序設(shè)計方法;掌握MATLAB GUI 程序設(shè)計;學習和熟悉MATLAB工具箱;學會運用MATLAB工具箱繪制常見圖像。三、設(shè)計過程首先,啟動Matlab并進入GUIDE環(huán)境:在Command Window下輸入“guide”,進入GUIDE環(huán)境。然后在用戶界面編輯窗口添加4個命令按鈕(顯示是OK的用個PUSH BUTTON),再如下圖所示添加5個靜態(tài)文本框(Static Text)、5個編輯文本框(Edit Text)和一個坐標系(Axes)。其次,按下表設(shè)置每個控件的屬性值(具體操作是:雙擊鼠標左鍵要設(shè)置屬性的控件property inspector 命令在彈出的屬性窗口中找到相應的屬性名稱將該屬性的值修改成自己需要的值)。各控件屬性修改值(表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è)置成一個適定值,如10TageditBCREdit Text2String空或設(shè)置成一個適定值,如2TageditSCREdit Text3String空或設(shè)置成一個適定值,如1TageditXZZEdit Text4String空或設(shè)置成一個適定值,如4TageditCREdit Text5String空或設(shè)置成一個適定值,如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);%這里選擇了一個圖片文件,作為初始畫面,具體的圖片可以選擇自己喜歡的。map1=imread(Water lilies.jpg);image(map1)%上面的代碼,告訴我們,一般的用戶界面的自己設(shè)置的初始化狀態(tài)應添加在這個函數(shù)內(nèi)。function varargout = Exp8_OutputFcn(hObject, eventdata, handles)varargout1 = handles.output;%上面的函數(shù)返回的量直接到命令窗口。function pushbuttonLxx_Callback(hObject, eventdata, handles)%上面的函數(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ì)點,沿著已知圓錐面的一條直母線自圓錐的頂點起,作等速直線運動,另一方面這一條母線在圓錐面上,過圓錐的頂點繞圓錐的軸(旋轉(zhuǎn)軸)作等速的轉(zhuǎn)動,這時質(zhì)點在圓錐面上的軌跡”的動態(tài)形成過程。function pushbuttonNBX_Callback(hObject, eventdata, handles)%上面的函數(shù)是點擊內(nèi)擺線按鈕時,執(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ù)是點擊退出按鈕時,執(zhí)行的代碼,即可以在此處添加退出時的程序代碼。ss=questdlg(你真的要退出嗎?,退出信息窗口!,不,我還想看看!,是的,我要退出!,是的,我要退出!);switch ss case 是的,我要退出! delete(handles.figure1);end%上面的程序是退出程序時信息窗口function editBCR_Callback(hObject, eventdata, handles)%上面的函數(shù)是 editBCR這個編輯文本按鈕回調(diào)時,執(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這個編輯文本按鈕回調(diào)時,執(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這個編輯文本按鈕回調(diào)時,執(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ù)是點擊圓旋轉(zhuǎn)成圓環(huán)按鈕時,執(zhí)行的代碼,即可以在此處添加圓旋轉(zhuǎn)成圓環(huán)時的程序代碼。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這個編輯文本按鈕回調(diào)時,執(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的屬性值。添加代碼完畢后,點擊保存程序代碼,再單擊Run(如圖:)運行已經(jīng)完成的程序,即可得到我們所想要的效果了。最后,如果還想要在界面添加背景顏色,那么還可以添加Select菜單項。首先將圖形窗口的MenuBar屬性設(shè)為figure,然后打開菜單編輯器,新建一個菜單項,它的Lebel屬性設(shè)為Select,再在剛建的Select菜單項下建立子菜單項,其Lebel屬性設(shè)為Yellow,把Callback屬性設(shè)為set(gcf,Color,y)。同理,再為Select建立一個子菜單項,其Label屬性和Callback屬性分別設(shè)為Red和set(gcf,Color,r)。這時候再運行程序就可以了。四、結(jié)論及分析 當程序運行成功后會出現(xiàn)以下界面: 主畫面(圖一)當分別點擊按鈕“螺旋線”、“內(nèi)擺線”、“圓旋轉(zhuǎn)成圓環(huán)”和“退出”命令按鈕時,分別出現(xiàn)如下列圖示的動態(tài)、靜態(tài)的結(jié)果: 螺旋線圖(圖二) 內(nèi)擺線圖(圖三) 退出信息圖(圖四)注意:你所選圖片格式與圖片名字要與讀入圖片文件的格式與文字要一致。比如在本程序設(shè)計中,添加圖片的代碼如下:map1=imread(Water lilies.jpg);image(map1)這時圖片的格式為jpg,名字為Water lilies。同時,選用的圖片應該把它放在與其它文件一起的同一個文件夾里。五、設(shè)計體會MATLAB不僅具有強大的數(shù)值運算和符號計算功能,同時還具有非常強大的二維和三維繪圖功能,尤其擅長于各種科學運算結(jié)果的可
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 摩托車安全知識講解考核試卷
- 雙十一玩家購買心理
- 寧夏回族銀川市西夏區(qū)2025年數(shù)學三下期末統(tǒng)考模擬試題含解析
- 石家莊市欒城縣2025屆三下數(shù)學期末統(tǒng)考模擬試題含解析
- 山西財經(jīng)大學華商學院《西班牙語詞匯》2023-2024學年第一學期期末試卷
- 江西省九江市彭澤縣重點達標名校2024-2025學年初三下學期第二次周考物理試題含解析
- 南昌航空大學《建筑設(shè)計A2》2023-2024學年第二學期期末試卷
- 山東理工大學《微波與天線》2023-2024學年第二學期期末試卷
- 九江學院《中國民俗文化》2023-2024學年第二學期期末試卷
- 吉林省長春市榆樹市一中2025屆高三第二次質(zhì)量調(diào)查(二模)生物試題試卷含解析
- 隧道工程各施工階段質(zhì)量控制要點
- 《民航服務禮儀》項目五 地面服務禮儀
- 旅游產(chǎn)品策劃與設(shè)計課件(完整版)
- 公共管理學(第3版)教學課件匯總完整版電子教案
- 一二三級配電箱原理圖、施工臨電平面圖
- DB23∕T 1019-2020 黑龍江省建筑工程資料管理標準
- 【證券】金融市場基礎(chǔ)知識(完整版講義)
- 麗聲北極星分級繪本第一級上My Noisy Schoolbag課件
- 跨鐵路橋施工方案
- 建筑裝飾專業(yè)中級職稱理論考試題庫-建設(shè)工程專業(yè)中級職稱理論考試題庫
- 風管制作標準
評論
0/150
提交評論