- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在调度代码的后面紧跟着两个子函数,这两个子函数就是GUI的回调函数。第一个回调函数是 function ex2_OpeningFcn(hObject, eventdata, handles, varargin) 该函数负责打开图形界面,同时,若程序中需要对一些全局的参数进行初始化或者设置时,可以将初始化用户数据的代码添加在该子函数中。 第二个回调函数是 function varargout = ex2_OutputFcn(hObject, eventdata, handles) 该子函数负责将图形界面的句柄返回给用户的输出参数。 接下来的子函数是分别用来响应用户的动作输入,完成相应功能的GUI控件回调子函数。在这里首先编写Draw按钮的回调函数。在M文件中找到函数btnDraw_Callback,并且添加相应的代码: function btnDraw_Callback(hObject, eventdata, handles) % 绘制三维曲面 hsurfc = surf(peaks(30),FaceColor,blue); % 保存三维曲面的句柄 handles.hsurface = hsurfc; guidata(hObject,handles); % 设置相应的文本显示当前色彩数值 set(handles.txtRed,String,[Red: 0 ]); set(handles.txtGreen,String,[Green: 0]); set(handles.txtBlue,String,[Blue: 1]); 在上述的代码中,首先绘制了三维曲面,然后将三维曲面的句柄保存在handles结构中。最后还设置了相应色彩的文本属性以显示不同的色彩数值。 注意:再次强调 在GUIDE创建的M函数文件中,若修改了handles结构,则需要通过guidata函数将handles的结构保存起来,只有这样才能够通过handles结构将不同的用户数据传递到相应的子函数中。 若此时执行M文件,单击“Draw”按钮之后,就可以在坐标轴中观察到程序的输出效果——三维的曲面,如图7-27所示。 图7-27 绘制曲面的效果 继续修改M文件,在不同控件的回调函数中添加代码完成用户界面的功能。Simple GUI的M代码(回调函数部分)如下: 单击“Change Color”按钮的回调函数: 001 % --- Executes on button press in btnChangeColor. 002 function btnChangeColor_Callback(hObject, eventdata, handles) 003 %修改曲面色彩 004 % 获取曲面的句柄 005 hsurf = handles.hsurface; 006 %hsurf = findobj(gcf,Type,Surface); 007 % 生成随机的色彩 008 newColor = rand(1,3); 009 % 设置曲面的色彩 010 set(hsurf,FaceColor,newColor); % Set face color of surface 011 % 设置相应的文本显示当前色彩数值 012 set(handles.txtRed,String,[Red: num2str(newColor(1,1))]); 013 set(handles.txtGreen,String,[Green: num2str(newColor(1,2))]); 014 set(handles.txtBlue,String,[Blue: num2str(newColor(1,3))]); 滚动条的回调函数: 001 % --- Executes on slider movement. 002 function sliderEdgeColor_Callback(hObject, eventdata, handles) 003 % 修改曲面的边缘色彩 004 % 获取对象句柄 005 hsurf = handles.hsurface; 006 % 获取滚动条当前的数值 008 newRead = get(hObject,Value); % Get new color from slider 009 EdgeColor= rand(1,3); % generate new
文档评论(0)