set(handles.radiobutton5,'value',0) colormap(jet)
% -------------------------------------------------------------------- function varargout = radiobutton2_Callback(h, eventdata, handles, varargin) set(handles.radiobutton1,'value',0) set(handles.radiobutton2,'value',1) set(handles.radiobutton3,'value',0) set(handles.radiobutton4,'value',0) set(handles.radiobutton5,'value',0) colormap(hsv)
% -------------------------------------------------------------------- function varargout = radiobutton3_Callback(h, eventdata, handles, varargin) set(handles.radiobutton1,'value',0) set(handles.radiobutton2,'value',0) set(handles.radiobutton3,'value',1) set(handles.radiobutton4,'value',0) set(handles.radiobutton5,'value',0) colormap(hot)
% -------------------------------------------------------------------- function varargout = radiobutton4_Callback(h, eventdata, handles, varargin) set(handles.radiobutton1,'value',0) set(handles.radiobutton2,'value',0) set(handles.radiobutton3,'value',0) set(handles.radiobutton4,'value',1) set(handles.radiobutton5,'value',0) colormap(pink)
% -------------------------------------------------------------------- function varargout = radiobutton5_Callback(h, eventdata, handles, varargin) set(handles.radiobutton1,'value',0) set(handles.radiobutton2,'value',0) set(handles.radiobutton3,'value',0) set(handles.radiobutton4,'value',0) set(handles.radiobutton5,'value',1) colormap(copper)
7.5 制作一个曲面光照效果的演示界面,如图所示,三个弹出式菜单分别用于选择曲面形式、色彩图、光照模式和反射模式,三个滚动条用于确定光源的位置,一个按钮用于退出演示。
提示:
(1)建立一个静态文本,用于显示界面的标题:光照效果演示; (2)建立坐标轴对象,用于显示图形;
(3)建立四个下拉菜单,分别用于选择绘图表面的形状、色图、光照模式和反射模式,每个下拉菜单的上方都有一个静态文本用于说明菜单的作用;
(4)在一个frame上建立三个滑条用于确定光源的位置,并在frame上方加一说明; (5)建立一个按钮用于退出演示; (6)callback函数的内容为:
function varargout = pushbutton1_Callback(h, eventdata, handles, varargin) delete(handles.figure1)
% -------------------------------------------------------------------- function varargout = popupmenu1_Callback(h, eventdata, handles, varargin) val=get(h,'value'); switch val case 1
surf(peaks); case 2
sphere(30); case 3 membrane case 4
[x,y]=meshgrid(-4:.1:4); r=sqrt(x.^2+y.^2)+eps; z=sinc(r); surf(x,y,z) case 5
[x,y]=meshgrid([-1.5:.3:1.5],[-1:0.2:1]); z=sqrt(4-x.^2/9-y.^2/4); surf(x,y,z); case 6
t=0:pi/12:3*pi;
r=abs(exp(-t/4).*sin(t)); [x,y,z]=cylinder(r,30);
surf(x,y,z); end
shading interp
light('Position',[-3 -2 1]); axis off
% -------------------------------------------------------------------- function varargout = radiobutton1_Callback(h, eventdata, handles, varargin) set(h,'value',1)
set(handles.radiobutton2,'value',0) set(handles.radiobutton3,'value',0) set(handles.radiobutton4,'value',0)
lighting flat
% -------------------------------------------------------------------- function varargout = radiobutton2_Callback(h, eventdata, handles, varargin) set(h,'value',1)
set(handles.radiobutton1,'value',0) set(handles.radiobutton3,'value',0) set(handles.radiobutton4,'value',0)
lighting gouraud
% -------------------------------------------------------------------- function varargout = radiobutton3_Callback(h, eventdata, handles, varargin) set(h,'value',1)
set(handles.radiobutton1,'value',0) set(handles.radiobutton2,'value',0) set(handles.radiobutton4,'value',0)
lighting phong
% -------------------------------------------------------------------- function varargout = radiobutton4_Callback(h, eventdata, handles, varargin) set(h,'value',1)
set(handles.radiobutton1,'value',0) set(handles.radiobutton3,'value',0) set(handles.radiobutton3,'value',0)
lighting none
% -------------------------------------------------------------------- function varargout = popupmenu2_Callback(h, eventdata, handles, varargin) val=get(h,'value'); switch val
case 1
colormap(jet) case 2
colormap(hot) case 3
colormap(cool) case 4
colormap(copper) case 5
colormap(pink) case 6
colormap(spring) case 7
colormap(summer) case 8
colormap(autumn) case 9
colormap(winter) end
% -------------------------------------------------------------------- function varargout = popupmenu3_Callback(h, eventdata, handles, varargin) val=get(h,'value'); switch val case 1
lighting flat case 2
lighting gouraud case 3
lighting phong case 4
lighting none end
% -------------------------------------------------------------------- function varargout = popupmenu4_Callback(h, eventdata, handles, varargin) val=get(h,'value'); switch val case 1
material shiny case 2
material dull case 3
material metal case 4
material default
end
% -------------------------------------------------------------------- function varargout = slider1_Callback(h, eventdata, handles, varargin) val=get(h,'value');
set(handles.edit1,'string',num2str(val));
lx==val; ly=get(handles.slider2,'value'); ly=get(handles.slider3,'value'); light('Position',[x y z]);
% -------------------------------------------------------------------- function varargout = edit1_Callback(h, eventdata, handles, varargin) str=get(h,'string');
set(handles.slider1,'value',str2num(str));
lx==str2num(str); ly=get(handles.slider2,'value'); ly=get(handles.slider3,'value'); light('Position',[x y z]);
% -------------------------------------------------------------------- function varargout = slider2_Callback(h, eventdata, handles, varargin) val=get(h,'value');
set(handles.edit2,'string',num2str(val));
lx=get(handles.slider1,'value'); lx==val; ly=get(handles.slider3,'value'); light('Position',[x y z]);
% -------------------------------------------------------------------- function varargout = edit2_Callback(h, eventdata, handles, varargin) str=get(h,'string');
set(handles.slider2,'value',str2num(str));
% -------------------------------------------------------------------- function varargout = slider3_Callback(h, eventdata, handles, varargin) val=get(h,'value');
set(handles.edit3,'string',num2str(val));
% -------------------------------------------------------------------- function varargout = edit3_Callback(h, eventdata, handles, varargin) str=get(h,'string');
set(handles.slider3,'value',str2num(str));
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库matlab经典习题及解答(6)在线全文阅读。
相关推荐: