matlab课程设计.docx
《matlab课程设计.docx》由会员分享,可在线阅读,更多相关《matlab课程设计.docx(15页珍藏版)》请在冰豆网上搜索。
matlab课程设计
一设计题目1
二维图像演示系统
(一)1
二总体分析1
题目分析1
五个菜单2
功能2
结构设计2
三详细设计2
菜单2
模块一3
模块二3
模块三5
模块四5
模块五6
模块六6
模块七6
模块八7
四程序运行效果7
程序效果图7
操作过程12
五总结12
一设计题目
二维图像演示系统
(一)
二总体分析
题目分析:
建立一个图形用户界面(GUI)演示常见的二维函数图形,其中包含“绘制二维图像plot”、“option”“线形”“线宽”五个菜单,绘制的二维图形曲线包括:
sin函数、x=tsin(3t),y=tsin2t、y=2e-0.5xcos(πx)、四页玫瑰曲线x=r*cos(i)y=r*sin(i),r为一个变化的系数r=cos(2*i)、阿基米德螺旋曲线,参数方程x=i*sin(i)y=i*cos(i)、心形曲线,参数方程x=(a-b)*cos(i)+b*cos((a/b-1)*i)y=(a-b)*sin(i)-b*sin((a/b-1)*i)。
“option”菜单主要包括:
网格开关,图例开关,坐标边框开关,曲线线性菜单,曲线颜色菜单,通过各个菜单控制实现对所绘的图形的调整。
五个菜单:
一plot菜单,用来绘制二维图形曲线
二option菜单,用来控制给绘制图形加网格线和坐标边框。
三线形菜单,控制线形。
四线宽菜单,控制线的粗细
五quit菜单,离开图形用户界面。
功能:
首先建立图形用户界面,图形用户界面建立后,有五个菜单项,通过plot菜单绘制题目所要求的图形,再对图形进行调节,通过option菜单,线形菜单,线宽菜单,分别实现对所绘图形的加或去掉网格,调节图形曲线的线条颜色,图形界面颜色,线条形状,线条宽度,最后通过quit菜单,离开图形用户界面。
结构设计:
三详细设计
菜单:
菜单一plot菜单,用来绘制二维图形曲线,其中包含sin函数、x=tsin(3t),y=tsin2t、y=2e-0.5xcos(πx)、四页玫瑰曲线x=r*cos(i)y=r*sin(i),r为一个变化的系数r=cos(2*i)、阿基米德螺旋曲线,参数方程x=i*sin(i)y=i*cos(i)、心形曲线,参数方程x=(a-b)*cos(i)+b*cos((a/b-1)*i)y=(a-b)*sin(i)-b*sin((a/b-1)*i)。
菜单二option菜单,包括“gridon”加网格线,“gridoff”撤销网格线,“boxon”加边框线,“boxoff”撤销边框线
菜单三线形菜单,控制线条是虚线还是实线。
菜单四线宽菜单,控制线条的粗细。
菜单五quit菜单,离开图形用户界面。
模块一:
设置屏幕的分辨率,建立没有菜单项的“二维图形演示系统”用户界面。
>>screen=get(0,'ScreenSize');
W=screen(3);
H=screen(4);
figure('Color',[1,1,1],'Position',[0.2*H,0.2*H,0.6*W,0.6*H],'Name','二维图形演示系统
(一)','NumberTitle','off','MenuBar','none');%建立用户界面
模块二:
建立plot菜单项,绘制题目所要求的二维图形曲线并设置菜单项的可选性。
绘制的曲线有sin函数、x=tsin(3t),y=tsin2t、y=2e-0.5xcos(πx)、四页玫瑰曲线x=r*cos(i)y=r*sin(i),r为一个变化的系数r=cos(2*i)、阿基米德螺旋曲线,参数方程x=i*sin(i)y=i*cos(i)、心形曲线,参数方程x=(a-b)*cos(i)+b*cos((a/b-1)*i)y=(a-b)*sin(i)-b*sin((a/b-1)*i)。
%定义Plot菜单项
hplot=uimenu(gcf,'Label','&Plot');%建立菜单项
uimenu(hplot,'Label','sine函数','Call',['t=-pi:
pi/200:
pi;','plot(t,sin(t));','title(''sin函数曲线'');',...%绘制sine函数图形
'set(hgon,''Enable'',''on'');','set(hgoff,''Enable'',''on'');',...
'set(hbon,''Enable'',''on'');','set(hboff,''Enable'',''on'');',...%设置菜单项可选性
'set(hlsDashed,''Enable'',''on'');',...%设置虚线菜单的可选性
'set(hlsReal,''Enable'',''on'');',...%设置实线菜单的可选性
'set(hlwWided,''Enable'',''on'');','set(hlwThin,''Enable'',''on'');',...%设置线宽的可选性
'set(hRed,''Enable'',''on'');',...
'set(hp,''Enable'',''on'');',...
'set(hg,''Enable'',''on'');',...
'set(hBlue,''Enable'',''on'');',...
'set(hYellow,''Enable'',''on'');',...
'set(hWhite,''Enable'',''on'');']);%设置颜色菜单可选性
uimenu(hplot,'Label','翅膀曲线','Call',['t=-pi:
pi/100:
pi;','x=t.*sin(3.*t);y=t.*(sin(t)).^2;','plot(x,y);',...
'set(hgon,''Enable'',''on'');','set(hgoff,''Enable'',''on'');',...
'set(hbon,''Enable'',''on'');','set(hboff,''Enable'',''on'');',...%设置菜单项可选性
'set(hlsDashed,''Enable'',''on'');',...%设置虚线菜单的可选性
'set(hlsReal,''Enable'',''on'');',...%设置实线菜单的可选性
'set(hlwWided,''Enable'',''on'');',...'set(hlwThin,''Enable'',''on'');',...%设置线宽的可选性
'set(hRed,''Enable'',''on'');',...
'set(hp,''Enable'',''on'');',...
'set(hg,''Enable'',''on'');',...
'set(hBlue,''Enable'',''on'');',...
'set(hYellow,''Enable'',''on'');',...
'set(hWhite,''Enable'',''on'');']);%设置颜色菜单可选性
uimenu(hplot,'Label','衰减函数','Call',['x=-pi:
pi/200:
pi;','y=2*exp(-0.5.*x).*cos(pi.*x);','plot(x,y);','title(''y=2e{-0.5x}*cos(\pi*x)函数曲线'');',...
'set(hgon,''Enable'',''on'');','set(hgoff,''Enable'',''on'');',...
'set(hbon,''Enable'',''on'');','set(hboff,''Enable'',''on'');',...%设置菜单项可选性
'set(hlsDashed,''Enable'',''on'');',...%设置虚线菜单的可选性
'set(hlsReal,''Enable'',''on'');',...%设置实线菜单的可选性
'set(hlwWided,''Enable'',''on'');',...'set(hlwThin,''Enable'',''on'');',...%设置线宽的可选性
'set(hRed,''Enable'',''on'');',...
'set(hp,''Enable'',''on'');',...
'set(hg,''Enable'',''on'');',...
'set(hBlue,''Enable'',''on'');',...
'set(hYellow,''Enable'',''on'');',...
'set(hWhite,''Enable'',''on'');']);%设置颜色菜单可选性
uimenu(hplot,'Label','四叶玫瑰曲线','Call',['z=-pi:
pi/100:
pi;','r=cos(2.*z);x=r.*cos(z);y=r.*sin(z);','plot(x,y);','title(''四叶玫瑰曲线'');',...
'set(hgon,''Enable'',''on'');','set(hgoff,''Enable'',''on'');',...
'set(hbon,''Enable'',''on'');','set(hboff,''Enable'',''on'');',...%设置菜单项可选性
'set(hlsDashed,''Enable'',''on'');',...%设置虚线菜单的可选性
'set(hlsReal,''Enable'',''on'');',...%设置实线菜单的可选性
'set(hlwWided,''Enable'',''on'');',...'set(hlwThin,''Enable'',''on'');',...%设置线宽的可选性
'set(hRed,''Enable'',''on'');',...
'set(hp,''Enable'',''on'');',...
'set(hg,''Enable'',''on'');',...
'set(hBlue,''Enable'',''on'');',...
'set(hYellow,''Enable'',''on'');',...
'set(hWhite,''Enable'',''on'');']);%设置颜色菜单可选性
uimenu(hplot,'Label','阿基米德螺旋曲线','Call',['t=1:
0.1:
33;','x=t.*sin(t);y=t.*cos(t);','plot(x,y);','title(''阿基米德螺旋曲线'');',...
'set(hgon,''Enable'',''on'');','set(hgoff,''Enable'',''on'');',...
'set(hbon,''Enable'',''on'');','set(hboff,''Enable'',''on'');',...%设置菜单项可选性
'set(hlsDashed,''Enable'',''on'');',...%设置虚线菜单的可选性
'set(hlsReal,''Enable'',''on'');',...%设置实线菜单的可选性
'set(hlwWided,''Enable'',''on'');',...
'set(hlwThin,''Enable'',''on'');',...
'set(hRed,''Enable'',''on'');',...
'set(hp,''Enable'',''on'');',...
'set(hg,''Enable'',''on'');',...
'set(hBlue,''Enable'',''on'');',...
'set(hYellow,''Enable'',''on'');',...
'set(hWhite,''Enable'',''on'');']);%设置颜色菜单可选性
uimenu(hplot,'Label','心形曲线','Call',['t=-pi:
pi/100:
pi;a=0.01;b=50;','x=(a-b).*cos(t)+b.*cos((a/b-1).*t);y=(a-b).*sin(t)-b.*sin((a/b-1).*t);',...
'plot(x,y);','title(''心形曲线'');',...
'set(hgon,''Enable'',''on'');','set(hgoff,''Enable'',''on'');',...
'set(hbon,''Enable'',''on'');','set(hboff,''Enable'',''on'');',...%设置菜单项可选性
'set(hlsDashed,''Enable'',''on'');',...%设置虚线菜单的可选性
'set(hlsReal,''Enable'',''on'');',...%设置实线菜单的可选性
'set(hlwWided,''Enable'',''on'');',...
'set(hlwThin,''Enable'',''on'');',...
'set(hRed,''Enable'',''on'');',...
'set(hp,''Enable'',''on'');',...
'set(hg,''Enable'',''on'');',...
'set(hBlue,''Enable'',''on'');',...
'set(hYellow,''Enable'',''on'');',...
'set(hWhite,''Enable'',''on'');']);%设置颜色菜单可选性
模块三:
定义option菜单项,实现对绘制图形曲线的加或撤销网格线和边框线,“gridon”加网格线,“gridoff”撤销网格线,“boxon”加边框线,“boxoff”撤销边框线。
%定义Option菜单项
hoption=uimenu(gcf,'Label','&option');
hgon=uimenu(hoption,'Label','&Gridon','Call','gridon','Enable','off');
hgoff=uimenu(hoption,'Label','&Gridoff','Call','gridoff','Enable','off');
hbon=uimenu(hoption,'Label','&Boxon','separator','on','Call','boxon','Enable','off');
hboff=uimenu(hoption,'Label','&Boxoff','Call','boxoff','Enable','off');
模块四:
定义用户界面背景颜色,可实现的背景颜色有,“蓝宝石”“紫色”“绿色”“红色”“蓝色”“黄色”“白色”。
%定义背景颜色选项
hwincor=uimenu(hoption,'Label','&WindowColor','Separator','on');
uimenu(hwincor,'Label','蓝宝石','Accelerator','s','Call','set(gcf,''Color'',[0.4910.6]);');
uimenu(hwincor,'Label','紫红','Accelerator','p','Call','set(gcf,''Color'',[0.80.20.9]);');
uimenu(hwincor,'Label','绿色','Accelerator','g','Call','set(gcf,''Color'',[010.3]);');
uimenu(hwincor,'Label','红色','Accelerator','r','Call','set(gcf,''Color'',''r'');');
uimenu(hwincor,'Label','蓝色','Accelerator','b','Call','set(gcf,''Color'',''b'');');
uimenu(hwincor,'Label','黄色','Accelerator','y','Call','set(gcf,''Color'',''y'');');
uimenu(hwincor,'Label','白色','Call','set(gcf,''Color'',''w'');');
模块五:
定义线形,调节虚线或实线的转换。
%定义线形选项
hLineStyle=uimenu(gcf,'Label','&线形','Separator','on');
hlsDashed=uimenu(hLineStyle,'Label','虚线','Call','set(findobj(gca,''Marker'',''none''),''LineStyle'','':
'');','Enable','off');
hlsReal=uimenu(hLineStyle,'Label','实线','Call','set(findobj(gca,''Marker'',''none''),''LineStyle'',''-'');','Enable','off');
模块六:
定义线宽,调节线条的粗细。
%定义线宽选项
hLineWidth=uimenu(gcf,'Label','&线宽');
hlwWided=uimenu(hLineWidth,'Label','加宽','Call','set(findobj(gca,''Marker'',''none''),''LineWidth'',2);','Enable','off');
hlwThin=uimenu(hLineWidth,'Label','变细','Call','set(findobj(gca,''Marker'',''none''),''LineWidth'',0.5);','Enable','off');
模块七:
定义线形颜色,可实现线条颜色有“红色”“紫色”“绿色”“蓝色”“黄色”“白色”
%定义线形颜色选项
hLincor=uimenu(hoption,'Label','&曲线颜色','Separator','on');
hRed=uimenu(hLincor,'Label','红色','Accelerator','r','Call','set(findobj(gca,''Marker'',''none''),''Color'',''r'');','Enable','off');
hp=uimenu(hLincor,'Label','紫色','Accelerator','p','Call','set(findobj(gca,''Marker'',''none''),''Color'',[0.80.20.9]);','Enable','off');
hg=uimenu(hLincor,'Label','绿色','Accelerator','r','Call','set(findobj(gca,''Marker'',''none''),''Color'',[010.3]);','Enable','off');
hBlue=uimenu(hLincor,'Label','蓝色','Accelerator','b','Call','set(findobj(gca,''Marker'',''none''),''Color'',''b'');','Enable','off');
hYellow=uimenu(hLincor,'Label','黄色','Accelerator','y','Call','set(findobj(gca,''Marker'',''none''),''Color'',''y'');','Enable','off');
hWhite=uimenu(hLincor,'Label','白色','Call','set(findobj(gca,''Marker'',''none''),''Color'',''w'');','Enable','off');
模块八
退出用户界面
%定义退出菜单项
uimenu(gcf,'Label','&退出','call','close(gcf)');
四程序运行效果
程序效果图
1sin函数曲线图无网格线,加边框,虚线,窗口颜色为白色,线条为蓝色。
增加加网格线,窗口颜色为蓝宝石,线条颜色为红色,
2翅膀函数曲线线形实线,线宽加粗,加网格线,窗口颜色为蓝宝石色,线条颜色为紫色3衰减函数曲线图,无网格线,加边框线,窗口颜色为蓝色,线条颜色为黄色。
3衰减函数,窗口颜色为白色,线条颜色为蓝色,无网格线,无线框。
衰减函数曲线图,无网格线,加边框线,窗口颜色为蓝色,线条颜色为黄色。
4四叶玫瑰曲线图,线形虚线,加网格线加边框线,窗口颜色为红色,线条颜色为蓝色。
阿基米德螺旋曲线图,加网格线,加边框线,实线窗口颜色为黄色,线条颜色为绿色。
阿基米德螺旋曲线图无网格线。
线形虚线,线宽加粗
心形曲线图形,加网格线,加边框线,窗口颜色为黄色,线条虚线,颜色为紫色。
无网格线,无边框线,窗口颜色为白色,线条实线,颜色为红色。
一设计题目2
二维图像演示系统
(一)2
二总体分析2
题目分析:
2
五个菜单:
2
功能:
2
结构设计:
3
三详细设计3
菜单:
3
模块一:
3
模块二:
4
模块三:
6
模块四:
6
模块五:
6
模块六:
7
模块七:
7
模块八7
四程序运行效果7
程序效果图7
操作过程:
13
五总结:
14
通过课程设计,进一步熟悉了MATLAB软件,的确感受到了MATLAB的强大,我所设计的题目,就是通过MATLAB此软件,建立一个图形用户界面,实现简单的二位图形曲线的绘制,一周的设计过程中,遇到了许多的困难,一次又一次的修改,暴露出了我的知识欠缺和经验不足,刚开始设计时,对MATLAB软件的基本操作和编程没掌握,慢慢的学会了基本的操作,收获不少,短短的一周,时间短暂,意义重大,最大的收获还算充分认识到自己的缺陷和不足,还有许多的东西要去学习,多加努力,学更多的东西。
这次课程设计虽然时间是短了点,但给了我们一次锻炼的机会,重新把课本看一遍,收获颇丰。
14
六参考文献:
14
操作过程:
程序运行可建立一个二维图形用户界面,界面上有五个菜单项,plot菜单,option菜单,线形菜单,线宽菜单,quite菜单,首先
(1)点击plot菜单,子菜单下有“函数曲线”,“翅膀曲线”“衰减曲线”“四叶玫瑰曲线”“阿基米德曲线”“心形曲线”选项,分别点击,可直接绘制相应的曲线,绘制曲线完成后,
(2)点击option菜单,点击其下子菜单实现加或撤销网格线和边框线,(3)点击子线形菜单,子菜单有虚线和实线选项,点击可实现对曲线的虚实调节,(4)点击线宽菜单,子菜单有加粗和变细选项,点击可实现对