h=figure('toolbar','none',... 'position',[200 150 450 250],... 'name','实例41'); h1=uicontrol(gcf,'style','edit',... 'position',[80 200 100 20],... 'HorizontalAlignment','right',... 'callback',['m=get(h1,''string'');,',... 'a=str2num(m);']); h2=uicontrol(gcf,'style','edit',... 'HorizontalAlignment','right',... 'position',[80 150 100 20],... 'callback',['n=get(h2,''string'');,',... 'b=str2num(n);']); h3=uicontrol(gcf,'style','text',... 'string','被除数',... 'position',[80 230 100 20]); h4=uicontrol(gcf,'style','edit',... 'position',[80 50 100 20]); h5=uicontrol(gcf,'style','pushbutton',... 'position',[80 100 100 20],... 'string','=',... 'callback',[... 'if b==0,',... 'h7=errordlg(''除数不能为0!'',''error'',''on'');,',... 'else,',... 'k=a/b;,',... 'c=num2str(k);,',... 'set(h4,''string'',c),',... 'end']); h8=uicontrol(gcf,'style','text',... 'string','除数',... 'position',[80 175 100 20]); h9=uicontrol(gcf,'style','text',... 'string','商',... 'position',[80 75 100 20]); 实例42:单选框的使用
h0=figure('toolbar','none',... 'position',[200 150 450 250],... 'name','实例42'); x=0:0.5:2*pi; y=sin(x); plot(x,y) grid on set(gcf,'toolbar','none') g=set(gca,'position',[0.2 0.2 0.6 0.6]); huidiao1=[... 'grid on,',... 'set(box_on,''value'',1),',... 'set(box_off,''value'',0),']; huidiao2=[... 'grid off,',... 'set(box_off,''value'',1),',... 'set(box_on,''value'',0),']; box_on=uicontrol(gcf,'style','radio',... 'position',[5 50 50 20],... 'string','grid on',... 'value',1,... 'callback',huidiao1); box_off=uicontrol(gcf,'style','radio',... 'position',[5 20 50 20],... 'string','grid off',... 'value',0,... 'callback',huidiao2); title('无线按钮的使用') 实例43:添加环境效果
h0=figure('toolbar','none',... 'position',[198 56 450 468],... 'name','实例43'); h1=axes('parent',h0,... 'position',[0.15 0.45 0.7 0.5],... 'visible','off'); sphere h=findobj('type','surface'); shading interp axis equal l=light('position',[0 -2 1]); k(1)=get(h,'specularstrength'); k(2)=get(h,'diffusestrength'); k(3)=get(h,'specularexponent'); k(4)=get(h,'specularcolorreflectance'); u1=uimenu('parent',h0,... 'label','灯光效果',... 'tag','u1',... 'backgroundcolor',[0.75 0.75 0.75]); u11=uimenu('parent',u1,... 'label','gouraud',... 'tag','u11',... 'backgroundcolor',[0.75 0.75 0.75],... 'callback',[... 'set(u11,''checked'',''on'');,',... 'set(u12,''checked'',''off'');,',... 'set(h,''facelighting'',''gouraud'')']); u12=uimenu('parent',u1,... 'label','phong',... 'tag','u12',... 'backgroundcolor',[0.75 0.75 0.75],... 'callback',[... 'set(u11,''checked'',''off'');,',... 'set(u12,''checked'',''on'');,',... 'set(h,''facelighting'',''gouraud'')']); u2=uimenu('parent',h0,... 'label','背面灯光',... 'tag','u2',... 'backgroundcolor',[0.75 0.75 0.75]); u21=uimenu('parent',u2,... 'label','reverselit',... 'tag','u21',... 'checked','on',... 'backgroundcolor',[0.75 0.75 0.75],... 'callback',[... 'set(u21,''checked'',''on'');,',... 'set(u22,''checked'',''off'');,',... 'set(h,''backfacelighting'',''reverselit'')']); u22=uimenu('parent',u2,... 'label','reverselit',... 'tag','u22',... 'backgroundcolor',[0.75 0.75 0.75],... 'callback',[... 'set(u21,''checked'',''off'');,',... 'set(u22,''checked'',''on'');,',... 'set(h,''backfacelighting'',''reverselit'')']); s1=uicontrol('parent',h0,... 'units','points',... 'style','slider',... 'tag','s1',... 'min',0,... 'max',1,... 'value',k(1),... 'position',[20 80 100 15],... 'callback',[... 's1value=get(s1,''value'');,',... 'set(h,''specularstrength'',s1value)']); t1=uicontrol('parent',h0,... 'units','points',... 'style','text',... 'tag','t1',... 'string','镜面反射强度',... 'position',[20 97 100 15]); s2=uicontrol('parent',h0,... 'units','points',... 'style','slider',... 'tag','s2',... 'min',0,... 'max',1,... 'value',k(2),... 'position',[20 30 100 15],... 'callback',[... 's2value=get(s2,''value'');,',... 'set(h,''diffusestrength'',s2value)']); t2=uicontrol('parent',h0,... 'units','points',... 'style','text',... 'tag','t2',... 'string','漫反射强度',... 'position',[20 47 100 15]); s3=uicontrol('parent',h0,... 'units','points',... 'style','slider',... 'tag','s3',... 'min',0.1,... 'max',1,... 'value',k(3)/20,... 'position',[220 80 100 15],... 'callback',[... 's3value=get(s3,''value'')+eps;,',... 'set(h,''specularexponent'',20*s3value)']); t3=uicontrol('parent',h0,... 'units','points',... 'style','text',... 'tag','t3',... 'string','镜面指数',... 'position',[220 97 100 15]); s4=uicontrol('parent',h0,... 'units','points',... 'style','slider',... 'tag','s4',... 'min',0,... 'max',1,... 'value',k(4),... 'position',[220 30 100 15],... 'callback',[... 's4value=get(s4,''value'');,',... 'set(h,''specularcolorreflectance'',s4value)']); t4=uicontrol('parent',h0,... 'units','points',... 'style','text',... 'tag','t1',... 'string','镜面颜色反射比',... 'position',[220 47 100 15]); b1=uicontrol('parent',h0,... 'units','points',... 'style','pushbutton',... 'tag','b1',... 'string','关闭',... 'position',[145 45 50 30],... 'callback','close'); 实例44:改变坐标轴范围
h0=figure('toolbar','none',... 'position',[198 56 408 468],... 'name','实例44'); h1=axes('parent',h0,... 'position',[0.15 0.45 0.7 0.5],... 'visible','on'); e1=uicontrol('parent',h0,... 'style','edit',... 'string',1,... 'position',[50 120 50 20]); t1=uicontrol('parent',h0,... 'style','text',... 'string','X轴最小值',... 'position',[35 150 80 20]); e2=uicontrol('parent',h0,... 'style','edit',... 'string',5,... 'position',[50 60 50 20]); t2=uicontrol('parent',h0,... 'style','text',... 'string','X轴最大值',... 'position',[35 90 80 20]); e3=uicontrol('parent',h0,... 'style','edit',... 'string',1,... 'position',[150 120 50 20]); t3=uicontrol('parent',h0,... 'style','text',... 'string','Y轴最小值',... 'position',[135 150 80 20]); e4=uicontrol('parent',h0,... 'style','edit',... 'string',5,... 'position',[150 60 50 20]); t4=uicontrol('parent',h0,... 'style','text',... 'string','Y轴最大值',... 'position',[135 90 80 20]); e5=uicontrol('parent',h0,... 'style','edit',... 'string',20,... 'position',[250 120 50 20]); t5=uicontrol('parent',h0,... 'style','text',... 'horizontalalignment','left',... 'string','点数',... 'position',[250 150 30 20]); b1=uicontrol('parent',h0,... 'style','pushbutton',... 'string','绘图',... 'position',[250 60 60 40],... 'callback',[... 'a=str2num(get(e1,''string''));,',... 'b=str2num(get(e2,''string''));,',... 'c=str2num(get(e3,''string''));,',... 'd=str2num(get(e4,''string''));,',... 'n=str2num(get(e5,''string''));,',... 'xgrid=linspace(-abs(a),abs(a),n);,',... 'ygrid=linspace(-abs(b),abs(b),n);,',... '[x,y]=meshgrid(xgrid,ygrid);,',... 'z=c*sqrt(d-y.*y/b/b-x.*x/a/a);,',... 'u=1;,',... 'z1=real(z);,',... 'for k=2:n-1,',... 'for j=2:n-1,',... 'if imag(z(k,j))~=0,',... 'z1(k,j)=0;,',... 'end,',... 'if all(imag(z([k-1:k+1],[j-1:j+1])))~=0,',... 'z1(k,j)=nan;,',... 'end,',... 'end,',... 'end,',... 'surf(x,y,z1),',... 'hold on,',... 'if u==1,',... 'z2=-z1;,',... 'surf(x,y,z2),',... 'axis([-abs(a),abs(a),-abs(b),abs(b),-abs(c),abs(c)]);,',... 'end,',... 'xlabel(''x'');,',... 'ylabel(''y'');,',... 'zlabel(''z'');,',... 'hold off']); b2=uicontrol('parent',h0,... 'style','pushbutton',... 'string','关闭',... 'position',[150 10 60 20],... 'callback','close'); 实例45:简单运算器
(责任编辑:泉水) |