matlab经典习题及解答(6)

2019-01-27 19:53

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));


matlab经典习题及解答(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大连市对外贸易经济合作局行政执法责任制

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: