资源预览内容
第1页 / 共42页
第2页 / 共42页
第3页 / 共42页
第4页 / 共42页
第5页 / 共42页
第6页 / 共42页
第7页 / 共42页
第8页 / 共42页
第9页 / 共42页
第10页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第6章 MATLAB高级图形设计,6.1 句柄图形对象 6.2 图形用户界面(GUI) 6.3 对话框 6.4 图像和声音 6.5 视频与动画设计,句柄(Handle)是每个图形对象唯一的标识,不同对象的句柄不能重复,通过句柄可以对图形对象的属性进行操作。,6.1 句柄图形对象 6.1.1 句柄图形对象体系,1. 创建句柄图形对象 h_objfunname(PropertyName,PropertyValue,) h_obj是图形对象的句柄; funname是函数名,每个创建的图形对象函数名与对象名相同; PropertyName是属性名,属性名是字符串; PropertyValue是属性值。 例: h_f=figure(Position,200 300 500 400) h_a1=axes(position,0.1,0.05,.85,.85) %创建条形图的坐标轴,6.1.2 句柄图形对象的操作,2. 访问句柄图形对象 (1)当前图形对象的句柄 说明:返回值都是句柄,gco的当前对象句柄是指被鼠标最近点击过的对象。 gcf %获取当前图形窗口的句柄 gca %获取当前窗口当前坐标轴的句柄 gco %获取当前窗口当前对象的句柄 (2)查找对象句柄 h=findobj(h_obj,PropertyName, PropertyValue) %查找符合指定属性值的对象句柄,3. 句柄图形对象属性的获取和设置 a=set(h_obj,PropertyName,PropertyValue,.)%设置图形对象的属性值 a=get(h_obj,PropertyName) %获取图形对象的属性值,练习,例6-2 使用句柄图形对象绘制正弦曲线。 x=0:0.1:10; y=sin(x); %创建无标题窗口 h_f=figure(Position,200 300 300 300,menubar,none); h_a1=axes(position,0.1,0.1,.8,.8); h_t=title(h_a1,正弦曲线); %创建标题 h_l=line(x,y);%设置坐标轴刻度 set(gca,xtick,0 pi/2 pi 3*pi/2 2*pi 5*pi/2 3*pi) %设置坐标轴刻度标注 set(gca,xticklabel,0,pi/2,pi,3*pi/2,2pi,5*pi/2,3pi) set(gca,xgrid,on,ygrid,on); %设置坐标轴属性 set(h_l,linewidth,2) %设置线属性 set(get(h_t,parent),color,y) %设置标题的父对象属性 %创建矩形框 h_ann0=annotation(gcf,rectangle,0.1 0.5 .8 0.4,. FaceAlpha,.7,FaceColor,red);,4. 句柄图形对象的复制和删除 (1)句柄图形对象的复制 new_handle = copyobj(h_obj,p) %复制图形对象h_obj (2)删除句柄图形对象 delete(h_obj) %删除图形对象 (3)删除所有的句柄对象 clf(h_figure) %删除h_figure窗口中的所有可见对象 cla(h_axes) %删除h_axes坐标轴中的所有可见对象,MATLAB的图形用户界面提供了包含按钮、文本框、标签等一系列交互控件,用户可以通过鼠标和键盘进行交互操作。,6.2 图形用户界面(GUI),在MATLAB主界面选择菜单“File”“New”“GUI”,或直接在命令窗口输入“Guide”命令都可以打开GUIDE快速开始界面 。,6.2.1 图形用户界面概述,1. 设计一个GUI界面的步骤 (1)界面布局设计 界面布局设计包括以下几个步骤: 通过拖拽控件面板中的控件到界面设计区中; 然后使用对象对齐工具(Align Objects)进行控件的布局调整,使用Tab顺序编辑器(Tab Order Editor)对各控件的Tab顺序进行较好地设置; 如果界面需要菜单,则使用菜单编辑器(Menu Editor)进行菜单的设计; 添加完控件后在对象浏览器(Object Browser)中就可以看到所有的图形对象,完成界面的布局设计。 (2)属性设置 打开属性编辑器(Property Inspector)对相关的属性进行修改 。 (3)编写回调函数,6.2.2 设计一个简单的GUI界面,2. 一个简单的图形用户界面设计实例 例6-3 创建一个用户界面,实现单击按钮在坐标轴中绘制正弦曲线的功能,运行界面如图6-6所示。 (1)创建一个空白的GUI界面 (2)创建控件 (3)调整控件布局 (4)设置各控件的Tab顺序 (5)设置控件的属性 (6)编写回调函数 (7)运行GUI界面程序,实现单击“pushbutton1”按钮绘制正弦曲线,程序编写如下: function pushbutton1_Callback(hObject, eventdata, handles) x=0:0.1:20; y=sin(x); plot(x,y) 单击“pushbutton2”按钮关闭窗口,程序编写如下: function pushbutton2_Callback(hObject, eventdata, handles) close %关闭窗口,选择菜单“View”“Object Browser”,查看各图形对象 。,Align Objects窗口,Tab顺序编辑器窗口,Object Browser窗口,Property Inspector窗口,1回调函数 (1)回调函数的类型 每种控件根据控件功能的不同回调函数类型也不同。 (2)回调函数的自动命名 (3)回调函数的输入参数 回调函数的输入参数也是由GUIDE自动确定的,常用的有hObject、 eventdata和 handles。 2GUI程序文件 (1).fig文件 (2).m文件,6.2.3 回调函数和GUI程序文件,1控件的通用属性 (1)Tag属性 (2)String属性 (3)Style属性 (4)Visible属性 (6)Enable属性 (5)Fontsize属性,6.2.4 按钮、滚动条和文本框控件,2按钮(Push Button)和切换按钮(Toggle Button) 按钮和切换按钮的常用属性都有Tag、string和value: value为1表示被单击,为0则未被单击; 按钮默认的Tag属性为pushbutton1,切换按钮为togglebutton1。当用户单击按钮或切换按钮调用callback回调函数; string属性是按钮上显示的文字,默认的string属性与Tag相同。,3滚动条(Slider) (1)常用属性 滚动条的常用回调函数是callback,当每次单击滚动条改变当前值时调用该函数。 (2)回调函数 常用属性有value、max、min和SliderStep。 4静态文本框(Static Text)和文本框(Edit Text) 静态文本框和文本框的常用属性都有string和字体属性。 静态文本框没有callback回调函数,一般不接收用户操作;而文本框有callback回调函数,当修改了文本框内容后文本框失去焦点时调用。,练习,例6-4 创建一个用户界面,通过滚动条输入比例系数,使用文本框显示滚动条的当前值,单击按钮在静态文本框中显示传递函数。,1. 单选按钮(Radio Button)和复选框(Check Box) 单选按钮和复选框都有value、string和enable属性,value属性为1时表示被选中;string属性为显示的文本;enable属性为on表示控件有效,无效控件显示为灰色。 2面板(Panel)和按钮组(Button Group) 面板和按钮组的title属性是显示面板或按钮组的标题,为字符串型,默认显示为“Panel”或“Button Group”; bordertype属性是边框类型,设置面板的边框显示形式,默认都是“etchedin”。,6.2.5 单选按钮、复选框和面板,练习,例6-5 创建一个用户界面,使用单选按钮选择正弦函数的幅值,使用复选框输入正弦函数的时间范围,正弦函数的行向量在文本框中显示运行界面。,1. 下拉菜单(Pop-Up Menu)和列表框(List Box) 下拉菜单和列表框的常用属性都有string和value: string属性是所有的下拉列表项,可以在属性编辑器中输入,在程序代码中输入多个列表项时使用“|”分隔; value属性是当前所选项的序号,如果选择第一项,则value=1。 9. 坐标轴(Axes) 坐标轴是输出图形的区域,plot命令则是创建坐标轴并将图形输出到坐标轴中,可以使用 title、xlabel、ylabel、zlabel和 text函数在坐标轴中添加文本。坐标轴的默认Tag属性是axes1。,6.2.6 下拉菜单、列表框、坐标轴和ActiveX控件,1菜单编辑器 在可视化界面环境中选择菜单“Tools”“Menu Editor”或单击工具栏按钮,就会出现菜单编辑器窗口,其中“Menu Bar”是普通菜单设计面板。,6.2.7 菜单的设计,2回调函数 每个菜单项都有callback回调函数, function new_Callback(hObject, eventdata, handles) 3. 使用句柄对象创建菜单 h_menu=uimenu(h_Parent,PropertyName,ProperValue,) %创建菜单 说明:h_Parent是菜单的父对象,如果是窗体,则在窗体创建新菜单,如果是菜单则创建该菜单的子菜单。,输入框为用户的输入信息提供了界面,使用inputdlg函数创建,并提供了“Ok”和“Cancel”两个按钮,inputdlg函数的命令格式如下: answer = inputdlg(prompt,title,lineno,defans,addopts) %创建输入框 例: prompt=请输入正弦函数的频率; defans=10; w=inputdlg(prompt,输入,1,defans),6.3 对话框 6.3.1 输入框,1输出消息框 输出消息框用来显示各种输出信息,使用msgbox函数来创建,只有一个“Ok”按钮,并利用图标表示不同的信息类型,msgbox函数的命令格式如下: h=msgbox(message,title,icon,icondata,iconcmap,createmode) %创建输出消息框 例: message=输入参数超出范围; icon=error; h=msgbox(message,出错,icon),6.3.2 输出框,练习,MATLAB R2010a的图像处理工具箱可以读入、显示和处理多种标准的图像格式文件,包括.bmp、.gif、.jpg、.tif、.png、.hdf、.pcx、.xwd、.ico和.cur等。 1图像类型 (1)索引图像 (2)灰度(强度)图像 (3)RGB(真彩)图像,6.4 图像和声音 6.4.1 图像,2. 图像处理函数 (1)图像文件的信息 图像文件可以使用imfinfo函数查询其信息,包括文件名、文件大小、图像尺寸、图像类型和每个像素的位数等信息。 (2)图像的读写 x,map = imread(filename,fmt) %读取图像文件 imwrite(x,map,filename,fmt) %写入图像文件 说明:x是图像文件的数据矩阵;map是颜色表矩阵,可省略,当imread读取的不是索引图像时则为,当imwrite写入的
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号