实验内容
建立如图1所示的GUI,单击“ShowFigure”按钮能在左边坐标轴得到一个球面,弹出框提供色图控制(有三种选择:default,cool,hot),滚动条控制球的半径和圆滑度,滑动滚动条radius,球的半径会改变(范围0.5~5),滑动滚动条Smooth,球面的圆滑度会改变(范围10~30)。单击菜单“Quit”,退出图形用户界面。提示:[x,y,z]=sphere(n),可以产生(n+1)行,(n+1)列的矩阵x,y,z,采用这3个矩阵可以绘制出圆心位于原点、半径为1的单位球体。若在调用该函数时不带输出参数,则直接绘制所需球面。n决定了球面的圆滑程度。
实验步骤
1、新建实时脚本,输入"guide",点击运行,新建GUI
2、生成fig文件后,利用左侧工具栏将所需控件拖至编辑窗口,如下图
3、编写控件回调函数
在按钮上->右键->查看回调->Callback
编写函数:
例如:右键ShowFigure->查看回调->callback后
function pushbutton2_Callback(hObject, eventdata, handles)
global R
global n
% 注意:R n 定义为全局变量,该变量可以被其它函数调用
[x,y,z] = sphere(n);
x = R*x;
y = R*y;
z = R*z;
axis equal;
surf(x,y,z);
其它按钮相应回调函数:
%Quit 按钮
function pushbutton1_Callback(hObject, eventdata, handles)
close
%ColorMap
function popupmenu1_Callback(hObject, eventdata, handles)
CM = hObject.Value
if CM ==1
colormap('default')
elseif CM == 2
colormap('cool')
else
colormap('hot')
end
%Ridus 滑块
function slider1_Callback(hObject, eventdata, handles)
% R 定义为全局变量
global R
R=get(hObject,'value');
%Smooth 滑块
function slider2_Callback(hObject, eventdata, handles)
% n 定义为全局变量
global n
n=get(hObject,'value');
4、调整控件属性
双击对应控件
String:修改控件名称
Max:修改最大值
Min:修改最小值
Value:一般设置成最小值或最大值
SiliderStep:步幅
对应控件设置:
ColorMap:
Radius:
Smooth:
5、运行效果