1 / 58

第 6 章 MATLAB 绘图 (3)

第 6 章 MATLAB 绘图 (3). 6.4 句柄图形. 6.4.1 句柄图形体系 1 图形对象和句柄 图形对象是一组紧密相关、形成惟一整体的子对象的集合,并且子对象可以被单独地操作。 在创建每一个图形对象时,都为该对象分配惟一的一个数值,称为图形对象句柄。句柄是图形对象的惟一标识符,不同对象的句柄是不同的。. 2 句柄图形的结构. 由图形创建函数产生的每一个对象都是图形对象,包括图形窗口、坐标轴、线条、曲面和文本,这些对象按父对象和子对象组成层次结构。 计算机屏幕是根对象,并且是所有其他对象的父对象。

zaza
Download Presentation

第 6 章 MATLAB 绘图 (3)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第6章 MATLAB 绘图 (3)

  2. 6.4 句柄图形 6.4.1句柄图形体系 1 图形对象和句柄 • 图形对象是一组紧密相关、形成惟一整体的子对象的集合,并且子对象可以被单独地操作。 • 在创建每一个图形对象时,都为该对象分配惟一的一个数值,称为图形对象句柄。句柄是图形对象的惟一标识符,不同对象的句柄是不同的。 MATLAB 7.X程序设计

  3. 2 句柄图形的结构 • 由图形创建函数产生的每一个对象都是图形对象,包括图形窗口、坐标轴、线条、曲面和文本,这些对象按父对象和子对象组成层次结构。 • 计算机屏幕是根对象,并且是所有其他对象的父对象。 • 图形窗口是根对象的子对象,坐标轴和用户界面对象是图形窗口的子对象,线条、文本、曲面、贴片和图像对象是坐标轴对象的子对象。 MATLAB 7.X程序设计

  4. 6.4.2 图形对象的建立 1 图形窗口对象 • figure:建立新的图形窗口的函数h=figure(PropertyName1, PropertyValue1,PropertyName2, PropertyValue2,…) 功能:建立图形窗口并设置指定属性的属性值,将句柄值赋给句柄变量h。其中PropertyName, PropertyValue(即属性名,属性值)构成属性二元对,该属性二元对还可以用结构数组表示。 MATLAB 7.X程序设计

  5. 例6-44建立一个图形窗口。该图形窗口有菜单条,名称为“This is the first figure.”,大小为300×300像素点,背景颜色为红色,鼠标键按下响应事件为在该图形窗口绘制出的正弦曲线。 • 例6-45创建一个窗口,背景为红色,没有菜单条,窗口的左下角在屏幕的(0,0)位置,宽度、高度分别为300、400(单位:像素) MATLAB 7.X程序设计

  6. figure 或 h =figure 功能:按默认的属性值建立图形窗口。 要关闭图形窗口,使用close函数,调用格式为: • close(h) 功能:关闭句柄为h的图形窗口。 • close all 功能:关闭所有的图形窗口。 注意clf命令则是清除当前图形窗口的内容,但不关闭窗口。 MATLAB 7.X程序设计

  7. 2 坐标轴对象 axes:建立坐标轴对象 • a=axes(PropertyName1, PropertyValue1,PropertyName2, PropertyValue2,…) 功能:用指定的属性在当前图形窗口创建坐标轴,并将其句柄值赋给句柄变量a。 • axes 或a=axes 功能:按默认的属性值在当前图形窗口创建坐标轴。 MATLAB 7.X程序设计

  8. 3 曲线对象 line:建立曲线对象 • L=line(x,y,z,PropertyName1, PropertyValue1,PropertyName2, PropertyValue2,…) 功能:绘制曲线,并将句柄值赋给句柄变量L,其中x,y,z的含义与高层绘图函数plot和plot3等一样。 MATLAB 7.X程序设计

  9. 例6-46绘制正弦曲线,并分别用元胞数组和构架数组设置对象属性。例6-46绘制正弦曲线,并分别用元胞数组和构架数组设置对象属性。 MATLAB 7.X程序设计

  10. 4 文字对象 text:建立文字对象的函数 • t=text(x,y,z,'说明文字',PropertyName1, PropertyValue1,PropertyName2, PropertyValue2,…) 功能:在指定位置和以指定的属性值添加文字说明,并保存句柄值为t。说明文字中除使用标准的ASCII字符外,还可使用LaTeX格式的控制字符。 MATLAB 7.X程序设计

  11. 例6-47利用曲线对象绘制正弦、余弦曲线,并利用文字对象完成标注。例6-47利用曲线对象绘制正弦、余弦曲线,并利用文字对象完成标注。 MATLAB 7.X程序设计

  12. 5 曲面对象 surface:建立曲面对象 • s=surface(x,y,z,PropertyName1, PropertyValue1,PropertyName2, PropertyValue2,…) 功能:建立句柄值为s的曲面对象。其中对x,y,z的含义与曲面绘制函数mesh和surf等一样。 MATLAB 7.X程序设计

  13. 例6-48利用曲面对象绘制三维曲面 MATLAB 7.X程序设计

  14. 6.4.3 对象句柄的获取方法 句柄值的获取方法: 1)追溯法获取句柄 • h_pa=get(h_known,’parent’) 功能:获取h_known的父对象句柄值,并赋给h_pa。 • h_ch=get(h_known,’children’) 功能:获取h_known的子对象的句柄值,并赋给h_ ch。 MATLAB 7.X程序设计

  15. 2)当前对象句柄的获取 • Hf_fig=gcf 功能:返回当前图形窗口的句柄值,并赋给Hf_fig • Ha_ax=gca • 功能:返回当前图形的当前坐标轴的句柄值,并赋给Ha_ax。 • Hx_obj=gco • 功能:获取当前对象的句柄值,并赋给Hx_obj。 • Hx_obj=gco(Hf_fig) • 功能:返回句柄值为Hf_fig的图形中当前对象的句柄值。 MATLAB 7.X程序设计

  16. 3) 根据对象特性获取句柄 findobj 函数是根据对象特性获取句柄的一种重要方法。调用格式如下: • h=findobj(h-ori,PropertyName, PropertyValue) • h=findobj PropertyName, PropertyValue,…) 功能:获取根和根以下以属性二元对(PropertyName, PropertyValue)指定属性值的对象的句柄值,并赋给h。 MATLAB 7.X程序设计

  17. H= findobj 功能:获取根对象和所有子对象的句柄值,并赋给H。 • H= findobj (ObjectHandles) • 功能:获取句柄为ObjectHandles对象中列出的对象和它们的子对象的句柄值,并赋给H。 MATLAB 7.X程序设计

  18. 例6-49绘制三维网格图,并用追溯法返 回图形窗的句柄。 MATLAB 7.X程序设计

  19. 6.4.4 对象属性的获取和设置 句柄图形建立后,应用函数get和set获取和设置对象的属性。 • get(h_obj) 获取句柄对象所有属性的当前值 • get(h_obj, 'PropertyName') 获取句柄对象h_obj的属性名为PropertyName的当前值 • set(h_obj) 显示句柄对象所有属性和属性值。 MATLAB 7.X程序设计

  20. set(h_obj, 'PropertyName') 设置句柄对象指定属性名的属性值 • set(h_obj, 'PropertyName', ' PropertyValue ') • 设置句柄对象指定属性名的属性值 • set(h_obj, 'PropertyStructure') • 用结构数组设置句柄对象指定属性的属性值 MATLAB 7.X程序设计

  21. get(h_obj, 'DefaultObjectTypePropertyName') 获取对象属性的默认值 • set(h_obj, 'DefaultObjectTypePropertyName', PropertyValue) • 设置属性的用户定义默认值 • set(h_obj, 'DefaultObjectTypePropertyName', 'Remove') • 删除属性的用户定义默认值 MATLAB 7.X程序设计

  22. 例6-50(续例6-45)获取句柄为h_fig为图形对象属性,将窗口的背景设置为白色背景。例6-50(续例6-45)获取句柄为h_fig为图形对象属性,将窗口的背景设置为白色背景。 • 例6-51绘制曲线y=1-sinxcosx,并设置曲线颜色为红色,宽度为3像素,窗口背景为绿色。 • 例6-52在同一个图形窗口以不同的坐标轴分别绘制正弦曲线和余弦曲线,并对曲线注释。 MATLAB 7.X程序设计

  23. 6.5 图形用户界面 6.5.1 图形用户界面对象层次结构 图形用户界面(Graphical User Interfaces,GUI): • 由窗口、光标、按键、菜单、文字说明等对象构成的一个用户界面。 • 用户通过鼠标或键盘选择、激活这些图形对象,使计算机产生某种动作或变化。 • MATLAB中设计图形用户界面的方法有两种:使用可视化的界面环境和通过编写程序。 • 用户菜单、用户控件和对话框是和坐标轴处于同一层次的,都是图形窗口的子对象。 MATLAB 7.X程序设计

  24. 6.5.2用户菜单 1 自定义的用户菜单 • unimenu: 自定义的用户菜单的建立函数Hm=unimenu(Hp,PropertyName1,PropertyValue1,PropertyName2,PropertyValue2,…) 功能:创建句柄值为Hm的自定义的用户菜单。其中Hp为其父对象的句柄,PropertyName和PropertyValue构成属性二元对,定义用户菜单的属性。 MATLAB 7.X程序设计

  25. 菜单对象除具有Children(子对象),Parent(父对象),Tag(标签),Type(类型),UserData(用户数据),Enable(使能)和 Visible(可见性)等公共属性,还有一些常用的特殊属性,如回调(callback)属性和菜单名(label)。 另外,用户菜单的外观有四个属性:Position(位置),Separator(分隔线),checked(检录符)和ForeGroundColor(前景颜色)。 MATLAB 7.X程序设计

  26. 因调用方法的不同,该函数也可以用于建立一级菜单项和子菜单项。因调用方法的不同,该函数也可以用于建立一级菜单项和子菜单项。 • 建立一级菜单项的函数调用格式为: 一级菜单项句柄=uimenu(图形窗口句柄,PropertyName,PropertyValue,…) • 建立子菜单项的函数调用格式为: 子菜单项句柄=uimenu(一级菜单项句柄,PropertyName,PropertyValue,…) • 图形窗的标准菜单可以通过属性MenuBar隐藏和恢复。 MATLAB 7.X程序设计

  27. 例6-53隐藏和恢复句柄值为H_fig的图形窗口的标准菜单的显示。例6-53隐藏和恢复句柄值为H_fig的图形窗口的标准菜单的显示。 • 例6-54在图形窗口的标准菜单基础上增加Color菜单,该菜单有设置图形窗背景颜色分别为蓝色或绿色的两个选择项。 MATLAB 7.X程序设计

  28. 2 快捷菜单 用uicontextmenu函数和图形对象的UIContextMenu属性来建立快捷菜单,具体步骤为: • 1)利用uicontextmenu函数建立快捷菜单,格式为: hc=uicontextmenu 功能:建立快捷菜单,并将句柄值赋给变量hc。 MATLAB 7.X程序设计

  29. 2) 利用uimenu函数为快捷菜单建立菜单项,格式为: uimenu(‘快捷菜单名’,PropertyName, PropertyValue,...) 功能:为创建的快捷菜单赋值,其中PropertyName和PropertyValue构成属性二元对。 • 3) 利用set函数将该快捷菜单和某图形对象联系起来。 MATLAB 7.X程序设计

  30. 例6-55绘制曲线y=1-sin(x)cos(x),并建立控制曲线的线型和曲线宽度的快捷菜单。例6-55绘制曲线y=1-sin(x)cos(x),并建立控制曲线的线型和曲线宽度的快捷菜单。 MATLAB 7.X程序设计

  31. 6.5.3 对话框 1创建对话框 • 创建对话框的函数是dialog,调用格式为: H=dialog(PropertyName,PropertyValue,…) 功能:创建句柄变量为H 的对话框。 • 常用的属性有ButtonDownFcn(鼠标按下调用函数),Colormap(色图),Color(颜色),HandleVisibility(句柄可视性),IntegerHandle(集成句柄), MenuBar(菜单条),NumberTitle(编号标题),PaperPositionMode(位置模式), Visible(可视性)和WindowStyle(窗口类型)等。 MATLAB 7.X程序设计

  32. 例6-57创建可视的无菜单的对话框,按下鼠标左键关闭该对话框。例6-57创建可视的无菜单的对话框,按下鼠标左键关闭该对话框。 MATLAB 7.X程序设计

  33. 2 输入信息对话框 输入对话框为用户的输入信息提供了界面,使用inputdlg函数创建,调用格式为: • answer=inputdlg(prompt,name,numlines,defaultanswer,addopts) • 功能:创建输入对话框。 • 其中answer为以元胞数组形式返回用户的输入信息;prompt为提示信息字符串的元胞数组;name为对话框的标题字符串,用引号括起来,可以省略;numlines用于指定输入值的行数,可以省略;defaultanswer为输入项的默认值,用引号括起来,是元胞数组可以省略;addopts指定对话框的选择,如是否可以改变大小,有无模式对话框等。 MATLAB 7.X程序设计

  34. 例6-58设计矩阵输入的对话框。 MATLAB 7.X程序设计

  35. 3 输出信息对话框 输出信息对话框为系统的输出信息界面,使用msgbox函数创建。msgbox的调用格式为: • h=msgbox(message,title,icon,icondata,iconcmap,CreateMode) • 功能:创建输出信息对话框。其中h为输出对话框的句柄,message为显示的信息,可以是字符串或数组;title为标题;icon为显示的图标,可取值为none(无图标),error(出错图标),help (帮助图标),warn(警告图标)或custom (自定义图标);当使用custom时,用icondata定义图标的数据,用iconcmap定义图标的颜色映象;CreateMode为对话框的产生模式可省略,取值为modal(有模式),replace(无模式可代替同名的对话框)和non-modal(默认为无模式)。 MATLAB 7.X程序设计

  36. 错误信息对话框函数errordlg,调用格式为: • h=errordlg(ErrorString,DlgName,CreateMode) • 功能:创建错误信息对话框,错误信息为ErrorString,标题为DlgName,CreateMode同上。 另外,警告信息对话框warndlg使用格式同errordlg。 MATLAB 7.X程序设计

  37. 例6-59设计输出信息对话框。 • 例6-60设计错误信息对话框。 MATLAB 7.X程序设计

  38. 4 帮助信息对话框 创建帮助信息对话框函数是helpdlg,调用格式为: • HANDLE = helpdlg (HELPSTRING,DLGNAME) • 功能:创建帮助信息对话框。其中,帮助信息为HELPSTRING,标题为DlgName。 • 例6-61设计帮助信息对话框。 MATLAB 7.X程序设计

  39. 5 选择对话框 创建选择对话框函数是questdlg,调用格式为: • button = questdlg('qstring','title','str1','str2','str3','default') • 功能:创建选择对话框。其中qstring 为问题信息,包含三个选择项str1,str2和str3,default指定默认的选择项。 MATLAB 7.X程序设计

  40. 例6-62设计选择信息对话框。 MATLAB 7.X程序设计

  41. 6 文件管理对话框 建立打开文件对话框的函数为uigetfile,调用格式为: • [FileName,PathName]=uigetfile(FiltrEspec,Title,x,y) • [FileName,PathName]=uigetfile(FiltrEspec,Title,'Location', [X Y] ) • 功能:创建打开文件对话框。其中,FileName和PathName分别为返回的文件名和路径,可省略,如果按“取消”按钮或发生错误,都返回0;FiltrEspec指定初始时显示的文件名,可以用通配符“*”表示,当省略时,则自动列出当前路径下的所有“*.m”文件和目录;Title为对话框标题,可省略;x、y分别指定对话框在屏幕上的位置(到屏幕左上角的距离),单位是像素,可省略。 MATLAB 7.X程序设计

  42. uiputfile函数用于建立保存文件对话框,调用格式为: • [FileName,PathName]=uiputfile(FiltrEspec,Title,x,y) • [FileName,PathName]= uiputfile(FiltrEspec,Title,'Location',[X Y] ) 参数定义与uigetfile相同。 MATLAB 7.X程序设计

  43. 例6-63建立打开文件对话框。 • 例6-64建立保存文件对话框。 MATLAB 7.X程序设计

  44. 6.5.4 用户控件 建立控件对象的函数为uicontrol,调用格式为: • 对象句柄=uicontrol(图形窗口句柄,PropertyName,PropertyValue,…) • 功能:建立用户控件对象。其中各个属性名及可取的值和前面介绍的uimenu函数相似。 MATLAB 7.X程序设计

  45. 控件名 PropertyName • 按钮PushButton 响应鼠标单击动作,按钮上有说明其作用的说明文字 • 切换按钮 ToggleButton 单击时呈凹凸状态,可用于切换 • 单选按钮 RadioButton 单击时呈黑白点状态,可用于切换,总是成组出现,多个单选按钮互斥,一组中只有一个被选中 • 复选框CheckBox 单击时用√切换,有选中、不选中和不确定等状态,总是成组出现,多个复选框可同时选用 • 文本框 EditText 凹形方框,可输入和编辑单行和多行文字,并显示出来 MATLAB 7.X程序设计

  46. 静态文本框StaticText 显示文字信息,但不接受输入 • 滚动条Slider 用图示的方式显示在一个范围内数值范围,可以通过移动滚动条改变数值 • 框架Frame 将一组控件围在框架中 • 列表框 ListBox 下拉文字列表,可以从列表中选择一项和多项 • 弹出式菜单PopupMenu 文本框和列表框的组合,可以从下拉列表中选择 • 坐标轴Axes 绘制坐标轴 MATLAB 7.X程序设计

  47. 例6-65编写函数x=asint,y=bcost的三维绘图的界面程序,其中a,b由键盘输入。例6-65编写函数x=asint,y=bcost的三维绘图的界面程序,其中a,b由键盘输入。 MATLAB 7.X程序设计

  48. 6.6 图形用户界面设计工具 6.6.1 图形用户界面设计工具的启动 图形用户界面设计工具的启动方式: 1)命令方式 图形用户界面GUI设计工具的启动命令为guide,格式为: • guide 功能:启动GUI设计工具,并建立名字为untitled1.fig的图形用户界面。 • guide FN 功能:启动GUI设计工具,并打开已建立的图形用户界面FN。 MATLAB 7.X程序设计

  49. 2) 菜单方式 在MATLAB的主窗口中,选择File菜单中的New菜单项,再选择其中的GUI命令,就会显示GUI的设计模板。 4种模板分别是: • Blank GUI(Default)(空白模板,默认) • GUI with Uicontrols(带控件对象的GUI模板) • GUI with Axes and Menu(带坐标轴与菜单的GUI模板) • Modal Question Dialog(带模式问题对话框的GUI模板)。 当用户选择不同的模板时,在GUI设计模板界面的右边就会显示出与该模板对应的GUI图形。 MATLAB 7.X程序设计

  50. 图形用界面设计工具启动时模板选择对话框 MATLAB 7.X程序设计

More Related