06.08.2013 Views

内容简介作者简介 - 科学与工程计算系

内容简介作者简介 - 科学与工程计算系

内容简介作者简介 - 科学与工程计算系

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

【例 10.4.3.3-1】目标:制作一个能绘制任意图形的交互界面。它包括:可编辑文本框、弹<br />

出框、列表框。本例的关键内容是:如何使编辑框允许输入多行指令。<br />

[exm100433_1.m]<br />

clf reset % <br />

set(gcf,'unit','normalized','position',[0.1,0.4,0.85,0.35]);<br />

set(gcf,'defaultuicontrolunits','normalized');<br />

set(gcf,'defaultuicontrolfontsize',11);<br />

set(gcf,'defaultuicontrolfontname','隶书');<br />

set(gcf,'defaultuicontrolhorizontal','left');<br />

set(gcf,'menubar','none');<br />

str='通过多行指令绘图的交互界面';<br />

set(gcf,'name',str,'numbertitle','off');<br />

h_axes=axes('position',[0.05,0.15,0.45,0.70],'visible','off');<br />

uicontrol(gcf,'Style','text',...<br />

'position',[0.52,0.87,0.26,0.1],...<br />

'String','绘图指令输入框');<br />

hedit=uicontrol(gcf,'Style','edit',... % <br />

'position',[0.52,0.05,0.26,0.8],...<br />

'Max',2); % <br />

hpop=uicontrol(gcf,'style','popup',... % <br />

'position',[0.8,0.73,0.18,0.12],...<br />

'string','spring|summer|autumn|winter');% <br />

hlist=uicontrol(gcf,'Style','list',... % <br />

'position',[0.8,0.23,0.18,0.37],...<br />

'string','Grid on|Box on|Hidden off|Axis off',...% <br />

'Max',2); % <br />

hpush=uicontrol(gcf,'Style','push',... % <br />

'position',[0.8,0.05,0.18,0.15],'string','Apply');<br />

set(hedit,'callback','calledit(hedit,hpop,hlist)'); % <br />

set(hpop,'callback','calledit(hedit,hpop,hlist)'); % <br />

set(hpush,'callback','calledit(hedit,hpop,hlist)'); % <br />

[calledit.m]<br />

function calledit(hedit,hpop,hlist)<br />

ct=get(hedit,'string'); % <br />

vpop=get(hpop,'value'); % <br />

vlist=get(hlist,'value'); % <br />

if ~isempty(ct) % <br />

eval(ct') % <br />

popstr={'spring','summer','autumn','winter'}; % <br />

liststr={'grid on','box on','hidden off','axis off'};% <br />

invstr={'grid off','box off','hidden on','axis on'};% <br />

colormap(eval(popstr{vpop})) % <br />

vv=zeros(1,4);vv(vlist)=1;<br />

for k=1:4<br />

if vv(k);eval(liststr{k});else eval(invstr{k});end<br />

end<br />

end<br />

14

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!