matlab实验6图形用户界面设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验6. 图形用户界面设计
一、 实验目的
1. 掌握图形对象属性的基本操作;
2. 掌握菜单及对话框设计、建立控件对象的方法。

二、 实验环境
1. 计算机
2. matlab7.x
三、 实验说明
1. 正确操作,认真观察;
2. 实验学时:2学时;
3. 学会使用help ;
4. 保存整理实验结果,提交实验报告。

四、 实验内容
1.设计如教材P374 图1所示的菜单,并在此基础上增加选项:可以改变曲线的
颜色,可以改变窗口背景颜色。

2.(选做)采用图形用户界面,从键盘输入参数a 、b 、n 的值,考察参数对极坐
标曲线)cos(θρn b a +=的影响。

五、 实验程序及结果
1.
figure('Color',[1 1 1],'Position',[400 300 500 250],'Name','201100000',
'NumberTitle','off','MenuBar','none');hplot=uimenu(gcf,'Label','&plot');
%设置Plot 菜单项
uimenu(hplot,'Label','Sin Wave','Call',['t=-pi:pi/20:pi;','y=sin(t);','plot(t,y);
','set(hgon,''Enable'',''on'');','set(hgoff,''Enable'',''on'');','set(hlinecolor,
''Enable'',''on'');'],'Accelerator','s');
uimenu(hplot,'Label','Cos Wave','Call',['t=-pi:pi/20:pi;','y=cos(t);','plot(t,y);
','set(hgon,''Enable'',''on'');','set(hgoff,''Enable'',''on'');','set(hlinecolor,
''Enable'',''on'');'],'Accelerator','c');
%设置Option 菜单项 hoption=uimenu(gcf,'Label','&option');
hgon=uimenu(hoption,'Label','&grid on','Call','grid on','Enable', 'off');
hgoff=uimenu(hoption,'Label','&grid off','Call','grid off','Enable', 'off');
hlinecolor=uimenu(hoption,'Label','&Line Color','Separator','on','Enable', 'off');
uimenu(hlinecolor,'Label','&red','Accelerator','r','Call','set(plot(t,y),''Color'
',''r'');');
uimenu(hlinecolor,'Label','&blue','Accelerator','b','Call','set(plot(t,y),''Color '',''b'');');
uimenu(hlinecolor,'Label','&green','Accelerator','g','Call','set(plot(t,y),''Colo r'',''g'');');
%设置Exit菜单项
uimenu(gcf,'Label','Exit','Call','close(gcf)');
%设置快捷菜单
hc=uicontextmenu;
hlc=uimenu(hc,'Label','背景颜色');
uimenu(hlc,'Label','red','Call','set(gcf,''Color'',''r'');');
uimenu(hlc,'Label','blue','Call','set(gcf,''Color'',''b'');');
uimenu(hlc,'Label','green','Call','set(gcf,''Color'',''g'');');
set(gcf,'UIContextMenu',hc);
2.
%设置对话框的颜色(灰色),位置,大小等属性值
hf=figure('Color',[0.5 0.5 0.5],'Position',[200 200 400 250],'Name',
'201100000','NumberTitle','off','MenuBar','none');
%设置图形演示界面的位置,大小,不设的话默认在中心位置
axes('Position',[0.35 0.23 0.6 0.7]);
%设置提示部分
uicontrol(hf,'Style','Text','Units','normalized','Position',[0.05 0.7 0.1
0.1],'Horizontal','center','String','a=','Back',[1 1 0]);
uicontrol(hf,'Style','Text','Units','normalized','Position',[0.05 0.5 0.1
0.1],'Horizontal','center','String','b=','Back',[1 1 0]);
uicontrol(hf,'Style','Text','Units','normalized','Position',[0.05 0.3 0.1
0.1],'Horizontal','center','String','n=','Back',[1 1 0]);
%设置文本输入框的属性值
he1=uicontrol(hf,'Style','Edit','Units','normalized','Position',[0.15 0.7 0.1 0.1],'Back',[1 1 1]);
he2=uicontrol(hf,'Style','Edit','Units','normalized','Position',[0.15 0.5 0.1 0.1],'Back',[1 1 1]);
he3=uicontrol(hf,'Style','Edit','Units','normalized','Position',[0.15 0.3 0.1 0.1],'Back',[1 1 1]);
%这里因为函数比较短,直接写了进去,如果函数比较长时可以选择函数调用
COMM=['a=str2num(get(he1,''string''));','b=str2num(get(he2,''string''));',
'n=str2num(get(he3,''string''));','theta=0:0.01:2*pi;','tho=a.*cos(b+n.*theta);', 'polar(theta,tho);'];
%设置按钮属性值
uicontrol(hf,'Style','Push','Units','normalized','Position',[0.05 0.05 0.1
0.12],'String','绘图','Call',COMM);
uicontrol(hf,'Style','Push','Units','normalized','Position',[0.85 0.05 0.1
0.12],'String','退出','Call','close(hf)');
六、实验总结
通过对图形用户界面实验的练习,自己对这方面有了一个初步的认识。

在实验的过程中明显感觉虽然设计的内容不多,但写的代码却不少,所以在设计复杂的界面时还是使用GUI开发环境更好一些,今后自己会在这方面多多练习。

通过这次试验也看到了自己的很多不足,比如操作不熟练,都是先参考课本后再进行编写的,还有在本次实验中控件使用的较少,这个也需要继续增加练习。

经过一段时间matlab课程的学习,自己受益匪浅,也很感谢老师这段时间对我的指导。

相关文档
最新文档