实验6 学号:201100000 姓名:000
实验6. 图形用户界面设计
一、 实验目的
1. 掌握图形对象属性的基本操作;
2. 掌握菜单及对话框设计、建立控件对象的方法。 二、 实验环境
1. 计算机 2. matlab7.x 三、 实验说明
1. 正确操作,认真观察; 2. 实验学时:2学时; 3. 学会使用help;
4. 保存整理实验结果,提交实验报告。 四、 实验内容
1.设计如教材P374 图1所示的菜单,并在此基础上增加选项:可以改变曲线的颜色,可以改变窗口背景颜色。
2.(选做)采用图形用户界面,从键盘输入参数a、b、n的值,考察参数对极坐标曲线??acos(b?n?)的影响。五、 实验程序及结果 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'
1
实验6 学号:201100000 姓名:000
',''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),''Color'',''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
实验6 学号:201100000 姓名:000
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)');
3
实验6 学号:201100000 姓名:000
六、 实验总结
通过对图形用户界面实验的练习,自己对这方面有了一个初步的认识。在实验的过程中明显感觉虽然设计的内容不多,但写的代码却不少,所以在设计复杂的界面时还是使用GUI开发环境更好一些,今后自己会在这方面多多练习。通过这次试验也看到了自己的很多不足,比如操作不熟练,都是先参考课本后再进行编写的,还有在本次实验中控件使用的较少,这个也需要继续增加练习。
经过一段时间matlab课程的学习,自己受益匪浅,也很感谢老师这段时间对我的指导。
4