MATLAB界面设计报告.docx
《MATLAB界面设计报告.docx》由会员分享,可在线阅读,更多相关《MATLAB界面设计报告.docx(11页珍藏版)》请在冰豆网上搜索。
![MATLAB界面设计报告.docx](https://file1.bdocx.com/fileroot1/2022-11/20/2d986ec3-232b-4e93-be70-22ce31a299bb/2d986ec3-232b-4e93-be70-22ce31a299bb1.gif)
MATLAB界面设计报告
《MATLAB课程设计》报告
设计题目:
可视化界面
学生姓名:
何庆宇
学生学号:
2009045444023
专业班级:
09级通信工程(师范)
答辩时间:
指导教师:
冯明库
广东技术师范学院
电子与信息学院
一、设计目的及意义
学会综合地运用MATLAB工具箱设计出可以绘制一般常见图像的GUI程序。
同时,加深对MATLAB的绘制图像功能的认识和设计GUI程序的一般方法的掌握。
二、设计任务及指标
设计一个GUI界面程序,可以根据不同参数的输入来绘制不同的螺旋线、内摆线以及圆环图像。
熟悉和掌握MATLAB程序设计方法;掌握MATLABGUI程序设计;学习和熟悉MATLAB工具箱;学会运用MATLAB工具箱绘制常见图像。
三、设计过程
首先,启动Matlab并进入GUIDE环境:
在CommandWindow下输入“guide”,进入GUIDE环境。
然后在用户界面编辑窗口添加4个命令按钮(显示是OK的用个PUSHBUTTON),再如下图所示添加5个静态文本框(StaticText)、5个编辑文本框(EditText)和一个坐标系(Axes)。
其次,按下表设置每个控件的属性值(具体操作是:
双击鼠标左键要设置属性的控件——propertyinspector命令——在弹出的属性窗口中找到相应的属性名称——将该属性的值修改成自己需要的值)。
各控件属性修改值(表1—1)
控件名
属性
属性修改值
PushButton1
FontSize
16
String
螺旋线
Tag
pushbuttonLxx
PushButton2
FontSize
16
String
内摆线
Tag
pushbuttonNBX
PushButton3
FontSize
16
String
圆旋转成圆环
Tag
pushbuttonCtoC
PushButton4
FontSize
16
String
退出
Tag
pushbuttonExit
StaticText1
String
大圆半径
StaticText2
String
小圆半径
StaticText3
String
修正值
StaticText4
String
圆半径
StaticText5
String
离转轴的距离
EditText1
String
空或设置成一个适定值,如10
Tag
editBCR
EditText2
String
空或设置成一个适定值,如2
Tag
editSCR
EditText3
String
空或设置成一个适定值,如1
Tag
editXZZ
EditText4
String
空或设置成一个适定值,如4
Tag
editCR
EditText5
String
空或设置成一个适定值,如10
Tag
editBExit
注:
上面控件名称的编号,比如1,2之类,在界面上是没有的,只是我按照从上到下的次序,为方便叙述而编写的。
最后,添加代码(在添加代码前,最好先将文件保存一下,比如以Exp8为文件名保存),添加程序代码的常用方法是:
单击M-fileEditor(如图:
)。
下面真正添加自己的程序,最后成的程序如下:
自己添加的程序用红色表示。
functionvarargout=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',[]);
ifnargin&&ischar(varargin{1})
gui_State.gui_Callback=str2func(varargin{1});
end
ifnargout
[varargout{1:
nargout}]=gui_mainfcn(gui_State,varargin{:
});
else
gui_mainfcn(gui_State,varargin{:
});
end
%上面的是系统初始化代码,绝对不要去修改它们。
functionExp8_OpeningFcn(hObject,eventdata,handles,varargin)
handles.output=hObject;
guidata(hObject,handles);
%这里选择了一个图片文件,作为初始画面,具体的图片可以选择自己喜欢的。
map1=imread('Waterlilies.jpg');
image(map1)
%上面的代码,告诉我们,一般的用户界面的自己设置的初始化状态应添加在这个函数内。
functionvarargout=Exp8_OutputFcn(hObject,eventdata,handles)
varargout{1}=handles.output;
%上面的函数返回的量直接到命令窗口。
functionpushbuttonLxx_Callback(hObject,eventdata,handles)
%上面的函数是点击螺旋线按钮时,执行的代码,即可以在此处添加有关螺旋线的程序代码。
axes(handles.axes1)
cla
v=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([-100100-1001000160])
gridon
axisequalon
comet3(x,y,z)
%上面的程序是“一质点,沿着已知圆锥面的一条直母线自圆锥的顶点起,作等速直线运动,另一方面这一条母线在圆锥面上,过圆锥的顶点绕圆锥的轴(旋转轴)作等速的转动,这时质点在圆锥面上的轨迹”的动态形成过程。
functionpushbuttonNBX_Callback(hObject,eventdata,handles)
%上面的函数是点击内摆线按钮时,执行的代码,即可以在此处添加有关内摆线的程序代码。
axes(handles.axes1)
cla
a=str2double(get(handles.editBCR,'String'));
b=str2double(get(handles.editSCR,'String'));
k=str2double(get(handles.editXZZ,'String'));
axis([-a-2a+2-a-2a+20a+2])
line([-a-2,a+2],[0,0]);
holdon
line([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)
axisequalon
gridon
theta=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)
%上面的程序是内摆线的动态的形成过程
%---ExecutesonbuttonpressinpushbuttonExit.
functionpushbuttonExit_Callback(hObject,eventdata,handles)
%上面的函数是点击退出按钮时,执行的代码,即可以在此处添加退出时的程序代码。
ss=questdlg('你真的要退出吗?
','退出信息窗口!
','不,我还想看看!
','是的,我要退出!
','是的,我要退出!
');
switchss
case'是的,我要退出!
'
delete(handles.figure1);
end
%上面的程序是退出程序时信息窗口
functioneditBCR_Callback(hObject,eventdata,handles)
%上面的函数是editBCR这个编辑文本按钮回调时,执行的代码。
functioneditBCR_CreateFcn(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
%上面的函数用来在程序中设置editBCR的属性值。
functioneditSCR_Callback(hObject,eventdata,handles)
%上面的函数是editSCR这个编辑文本按钮回调时,执行的代码。
functioneditSCR_CreateFcn(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
%上面的函数用来在程序中设置editSCR的属性值。
functioneditXZZ_Callback(hObject,eventdata,handles)
%上面的函数是editXZZ这个编辑文本按钮回调时,执行的代码。
functioneditXZZ_CreateFcn(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
%上面的函数用来在程序中设置editXZZ的属性值。
functionpushbuttonCtoC_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=len