MATLAB界面设计报告.doc_第1页
MATLAB界面设计报告.doc_第2页
MATLAB界面设计报告.doc_第3页
MATLAB界面设计报告.doc_第4页
MATLAB界面设计报告.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB课程设计报告设计题目: 可视化界面 学生姓名: 何庆宇 学生学号: 2009045444023 专业班级: 09级通信工程(师范) 答辩时间: 指导教师: 冯明库 广东技术师范学院电子与信息学院一、设计目的及意义 学会综合地运用MATLAB工具箱设计出可以绘制一般常见图像的GUI程序。同时,加深对MATLAB的绘制图像功能的认识和设计GUI程序的一般方法的掌握。二、设计任务及指标设计一个GUI界面程序,可以根据不同参数的输入来绘制不同的螺旋线、内摆线以及圆环图像。熟悉和掌握MATLAB 程序设计方法;掌握MATLAB GUI 程序设计;学习和熟悉MATLAB工具箱;学会运用MATLAB工具箱绘制常见图像。三、设计过程首先,启动Matlab并进入GUIDE环境:在Command Window下输入“guide”,进入GUIDE环境。然后在用户界面编辑窗口添加4个命令按钮(显示是OK的用个PUSH BUTTON),再如下图所示添加5个静态文本框(Static Text)、5个编辑文本框(Edit Text)和一个坐标系(Axes)。其次,按下表设置每个控件的属性值(具体操作是:双击鼠标左键要设置属性的控件property inspector 命令在弹出的属性窗口中找到相应的属性名称将该属性的值修改成自己需要的值)。各控件属性修改值(表11)控件名属性属性修改值PushButton1FontSize16String螺旋线TagpushbuttonLxxPushButton2FontSize16String内摆线TagpushbuttonNBXPushButton3FontSize16String圆旋转成圆环TagpushbuttonCtoCPushButton4FontSize16String退出TagpushbuttonExitStatic Text1String大圆半径Static Text2String小圆半径Static Text3String修正值Static Text4String圆半径Static Text5String离转轴的距离Edit Text1String空或设置成一个适定值,如10TageditBCREdit Text2String空或设置成一个适定值,如2TageditSCREdit Text3String空或设置成一个适定值,如1TageditXZZEdit Text4String空或设置成一个适定值,如4TageditCREdit Text5String空或设置成一个适定值,如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%上面的是系统初始化代码,绝对不要去修改它们。function Exp8_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject;guidata(hObject, handles);%这里选择了一个图片文件,作为初始画面,具体的图片可以选择自己喜欢的。map1=imread(Water lilies.jpg);image(map1)%上面的代码,告诉我们,一般的用户界面的自己设置的初始化状态应添加在这个函数内。function varargout = Exp8_OutputFcn(hObject, eventdata, handles)varargout1 = handles.output;%上面的函数返回的量直接到命令窗口。function pushbuttonLxx_Callback(hObject, eventdata, handles)%上面的函数是点击螺旋线按钮时,执行的代码,即可以在此处添加有关螺旋线的程序代码。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)%上面的程序是“一质点,沿着已知圆锥面的一条直母线自圆锥的顶点起,作等速直线运动,另一方面这一条母线在圆锥面上,过圆锥的顶点绕圆锥的轴(旋转轴)作等速的转动,这时质点在圆锥面上的轨迹”的动态形成过程。function pushbuttonNBX_Callback(hObject, eventdata, handles)%上面的函数是点击内摆线按钮时,执行的代码,即可以在此处添加有关内摆线的程序代码。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)%上面的程序是内摆线的动态的形成过程% - Executes on button press in pushbuttonExit.function pushbuttonExit_Callback(hObject, eventdata, handles)%上面的函数是点击退出按钮时,执行的代码,即可以在此处添加退出时的程序代码。ss=questdlg(你真的要退出吗?,退出信息窗口!,不,我还想看看!,是的,我要退出!,是的,我要退出!);switch ss case 是的,我要退出! delete(handles.figure1);end%上面的程序是退出程序时信息窗口function editBCR_Callback(hObject, eventdata, handles)%上面的函数是 editBCR这个编辑文本按钮回调时,执行的代码。function editBCR_CreateFcn(hObject, eventdata, handles)if ispc set(hObject,BackgroundColor,white);else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor);end %上面的函数用来在程序中设置editBCR的属性值。function editSCR_Callback(hObject, eventdata, handles)%上面的函数是editSCR这个编辑文本按钮回调时,执行的代码。function editSCR_CreateFcn(hObject, eventdata, handles)if ispc set(hObject,BackgroundColor,white);else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor);end %上面的函数用来在程序中设置editSCR的属性值。 function editXZZ_Callback(hObject, eventdata, handles)%上面的函数是editXZZ这个编辑文本按钮回调时,执行的代码。function editXZZ_CreateFcn(hObject, eventdata, handles)if ispc set(hObject,BackgroundColor,white);else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor);end %上面的函数用来在程序中设置editXZZ的属性值。function pushbuttonCtoC_Callback(hObject, eventdata, handles)%上面的函数是点击圆旋转成圆环按钮时,执行的代码,即可以在此处添加圆旋转成圆环时的程序代码。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%上面的程序是圆旋转成圆环的动态的形成过程function editCR_Callback(hObject, eventdata, handles)%上面的函数是editCR这个编辑文本按钮回调时,执行的代码。function editCR_CreateFcn(hObject, eventdata, handles)if ispc set(hObject,BackgroundColor,white);else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor);end %上面的函数用来在程序中设置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 %上面的函数用来在程序中设置editDist的属性值。添加代码完毕后,点击保存程序代码,再单击Run(如图:)运行已经完成的程序,即可得到我们所想要的效果了。最后,如果还想要在界面添加背景颜色,那么还可以添加Select菜单项。首先将图形窗口的MenuBar属性设为figure,然后打开菜单编辑器,新建一个菜单项,它的Lebel属性设为Select,再在刚建的Select菜单项下建立子菜单项,其Lebel属性设为Yellow,把Callback属性设为set(gcf,Color,y)。同理,再为Select建立一个子菜单项,其Label属性和Callback属性分别设为Red和set(gcf,Color,r)。这时候再运行程序就可以了。四、结论及分析 当程序运行成功后会出现以下界面: 主画面(图一)当分别点击按钮“螺旋线”、“内摆线”、“圆旋转成圆环”和“退出”命令按钮时,分别出现如下列图示的动态、静态的结果: 螺旋线图(图二) 内摆线图(图三) 退出信息图(图四)注意:你所选图片格式与图片名字要与读入图片文件的格式与文字要一致。比如在本程序设计中,添加图片的代码如下:map1=imread(Water lilies.jpg);image(map1)这时图片的格式为jpg,名字为Water lilies。同时,选用的图片应该把它放在与其它文件一起的同一个文件夹里。五、设计体会MATLAB不仅具有强大的数值运算和符号计算功能,同时还具有非常强大的二维和三维绘图功能,尤其擅长于各种科学运算结果的可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论