




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第6章 MATLAB高级图形设计第第6章章 MATLAB高级图形设计高级图形设计6.1 句柄图形对象 6.2 图形用户界面(GUI) 6.3 对话框 6.4 图像和声音 6.5 视频与动画设计第6章 MATLAB高级图形设计6.1 句柄图形对象句柄图形对象6.1.1 句柄图形对象体系句柄图形对象体系n句柄(Handle)是每个图形对象唯一的标识,不同对象的句柄不能重复,通过句柄可以对图形对象的属性进行操作。Root根屏幕根屏幕Figure图形图形UI Objects用户接口对象用户接口对象Core Objects核心对象核心对象Plot Objects绘图对象绘图对象Group Objects
2、组对象组对象Annotation Objects注释对象注释对象Axes轴轴 Uibuttongroup按钮组按钮组Uicontrol控件对象控件对象Uicontextmenu上下文菜单上下文菜单Uimenu菜单菜单Uipanel面板面板Uitoolbar工具栏工具栏第6章 MATLAB高级图形设计6.1.2 句柄图形对象的操作句柄图形对象的操作n1. 创建句柄图形对象创建句柄图形对象nh_objfunname(PropertyName,PropertyValue,)n%h_obj是图形对象的句柄;n%funname是函数名,每个创建的图形对象函数名与对象名相同;n%PropertyName是
3、属性名,属性名是字符串;n%PropertyValue是属性值。n例:例:n h_f=figure(Position,200 300 500 400)n h_a1=axes(position,0.1,0.05,.85,.85)%创建条形图的坐标轴第6章 MATLAB高级图形设计n2. 访问句柄图形对象访问句柄图形对象n(1)当前图形对象的句柄ngcf %获取当前图形窗口的句柄ngca %获取当前窗口当前坐标轴的句柄ngco %获取当前窗口当前对象的句柄n说明:返回值都是句柄,gco的当前对象句柄是指被鼠标最近点击过的对象。n(2)查找对象句柄n h=findobj(h_obj,Property
4、Name, PropertyValue)n %查找符合指定属性值的对象句柄例例第6章 MATLAB高级图形设计n3. 句柄图形对象属性的获取和设置句柄图形对象属性的获取和设置na=set(h_obj,PropertyName,PropertyValue,.)n%设置图形对象的属性值na=get(h_obj,PropertyName)n%获取图形对象的属性值PropertyValue第6章 MATLAB高级图形设计例例6-2 使用句柄图形对象绘制正弦曲线使用句柄图形对象绘制正弦曲线n x=0:0.1:10;n y=sin(x);n%创建无标题窗口n h_f=figure(Position,200
5、 300 300 300,menubar,none);n h_a1=axes(position,0.1,0.1,.8,.8);n h_t=title(h_a1,正弦曲线); %创建标题n h_l=line(x,y);n%设置坐标轴刻度及刻度标注n set(gca,xtick,0 pi/2 pi 3*pi/2 2*pi 5*pi/2 3*pi)n set(gca,xticklabel,0,pi/2,pi,3*pi/2,2pi,5*pi/2,3pi)n set(gca,xgrid,on,ygrid,on); %设置坐标轴属性n set(h_l,linewidth,2) %设置线属性n set(ge
6、t(h_t,parent),color,y) %设置标题的父对象属性n%创建矩形框n h_ann0=annotation(gcf,rectangle,0.1 0.5 .8 0.4,.nFaceAlpha,.7,FaceColor,red);第6章 MATLAB高级图形设计n4. 句柄图形对象的复制和删除句柄图形对象的复制和删除n(1)句柄图形对象的复制nnew_handle = copyobj(h_obj,p)%复制图形对象h_objn(2)删除句柄图形对象ndelete(h_obj)%删除图形对象n(3)删除所有的句柄对象nclf(h_figure) %删除h_figure窗口中的所有可见对
7、象ncla(h_axes)%删除h_axes坐标轴中的所有可见对象例例第6章 MATLAB高级图形设计6.2 图形用户界面(图形用户界面(GUI)nMATLAB的图形用户界面提供了包含按钮、文本框、的图形用户界面提供了包含按钮、文本框、标签等一系列交互控件,用户可以通过鼠标和键盘进标签等一系列交互控件,用户可以通过鼠标和键盘进行交互操作。行交互操作。M文件编辑器文件编辑器运行运行控 件控 件面板面板对象浏览器对象浏览器界 面 设界 面 设计区计区属性编辑器属性编辑器菜单编辑器菜单编辑器对象对齐工具对象对齐工具Tab顺序编辑器顺序编辑器第6章 MATLAB高级图形设计6.2.1 图形用户界面概述
8、图形用户界面概述n在MATLAB主界面选择菜单“File”“New”“GUI”,或直接在命令窗口输入“Guide”命令都可以打开GUIDE快速开始界面 。第6章 MATLAB高级图形设计6.2.2 设计一个简单的设计一个简单的GUI界面界面n1. 设计一个设计一个GUI界面的步骤界面的步骤n(1)界面布局设计)界面布局设计n界面布局设计包括以下几个步骤:n通过拖拽控件面板中的控件到界面设计区中;n然后使用对象对齐工具(Align Objects)进行控件的布局调整,使用Tab顺序编辑器(Tab Order Editor)对各控件的Tab顺序进行较好地设置;n如果界面需要菜单,则使用菜单编辑器(
9、Menu Editor)进行菜单的设计;n添加完控件后在对象浏览器(Object Browser)中就可以看到所有的图形对象,完成界面的布局设计。n(2)属性设置)属性设置n打开属性编辑器(Property Inspector)对相关的属性进行修改 。n(3)编写回调函数)编写回调函数第6章 MATLAB高级图形设计n2. 一个简单的图形用户界面设计实例一个简单的图形用户界面设计实例n例例6-3 创建一个用户界面,实现单击按钮在坐标轴中绘制创建一个用户界面,实现单击按钮在坐标轴中绘制正弦曲线的功能,运行界面如图正弦曲线的功能,运行界面如图6-6所示。所示。n(1)创建一个空白的)创建一个空白的
10、GUI界面界面n(2)创建控件)创建控件n(3)调整控件布局)调整控件布局n(4)设置各控件的)设置各控件的Tab顺序顺序n(5)设置控件的属性)设置控件的属性n(6)编写回调函数)编写回调函数n(7)运行)运行GUI界面程序界面程序设计一个设计一个GUI界面的步骤?界面的步骤?第6章 MATLAB高级图形设计3. GUI开发环境的常用工具开发环境的常用工具控件面板控件面板 对象对齐工具对象对齐工具 对象浏览器对象浏览器 属性编辑器属性编辑器 M文件编辑器文件编辑器 Tab顺序编辑器顺序编辑器 菜单编辑器菜单编辑器 第6章 MATLAB高级图形设计n选择菜单选择菜单“View”“Object
11、Browser”,查看各,查看各图形对象图形对象 。Align Objects窗口窗口 Tab顺序编顺序编辑器窗口辑器窗口 Object Browser窗口窗口 Property Inspector窗口窗口 第6章 MATLAB高级图形设计6.2.3 回调函数和回调函数和GUI程序文件程序文件n1回调函数回调函数n(1)回调函数的类型n每种控件根据控件功能的不同回调函数类型也不同。n(2)回调函数的自动命名n(3)回调函数的输入参数n回调函数的输入参数也是由GUIDE自动确定的,常用的有hObject、 eventdata和 handles。n2GUI程序文件程序文件n(1).fig文件n(2
12、).m文件(主函数、子函数)例例6-3例例6-3第6章 MATLAB高级图形设计6.2.4 按钮、滚动条和文本框控件按钮、滚动条和文本框控件n1控件的通用属性控件的通用属性n(1)Tag属性n(2)String属性n(3)Style属性n(4)Visible属性n(5)Fontsize属性n(6)Enable属性第6章 MATLAB高级图形设计n2按钮按钮(Push Button)和切换按钮和切换按钮(Toggle Button) n按钮和切换按钮的常用属性都有Tag、string和value:nvalue为1表示被单击,为0则未被单击;n按钮默认的Tag属性为pushbutton1,切换按钮
13、为togglebutton1。当用户单击按钮或切换按钮调用callback回调函数;nstring属性是按钮上显示的文字,默认的string属性与Tag相同。第6章 MATLAB高级图形设计n3滚动条(滚动条(Slider)n(1)常用属性n常用属性有value、max、min和SliderStep。n(2)回调函数n滚动条的常用回调函数是callback,当每次单击滚动条改变当前值时调用该函数。n4静态文本框静态文本框(Static Text)和文本框和文本框(Edit Text)n静态文本框和文本框的常用属性都有string和字体属性。n静态文本框没有callback回调函数,一般不接收用
14、户操作;而文本框有callback回调函数,当修改了文本框内容后文本框失去焦点时调用。第6章 MATLAB高级图形设计n例例6-4 创建一个用户界面,通过滚动条输入比例创建一个用户界面,通过滚动条输入比例系数,使用文本框显示滚动条的当前值,单击按系数,使用文本框显示滚动条的当前值,单击按钮在静态文本框中显示传递函数。钮在静态文本框中显示传递函数。第6章 MATLAB高级图形设计6.2.5 单选按钮、复选框和面板单选按钮、复选框和面板n1. 单选按钮(单选按钮(Radio Button)和复选框()和复选框(Check Box)n单选按钮和复选框都有单选按钮和复选框都有value、string和
15、和enable属性,属性,value属性为属性为1时表示被选中;时表示被选中;string属性为显示的文本;属性为显示的文本;enable属性为属性为on表示控件有效,无效控件显示为灰色。表示控件有效,无效控件显示为灰色。n 状态改变时调用回调函数。状态改变时调用回调函数。n2面板(面板(Panel)和按钮组()和按钮组(Button Group)n面板和按钮组的面板和按钮组的title属性是显示面板或按钮组的标题,为属性是显示面板或按钮组的标题,为字符串型,默认显示为字符串型,默认显示为“Panel”或或“Button Group”;nbordertype属性是边框类型,设置面板的边框显示形
16、式,属性是边框类型,设置面板的边框显示形式,默认都是默认都是“etchedin”。n面板面板没有回调函数,没有回调函数,按钮组按钮组中选择的对象改变时调用回调中选择的对象改变时调用回调函数。函数。第6章 MATLAB高级图形设计n例例6-5 创建一个用户界面,使用单选按钮选择正弦创建一个用户界面,使用单选按钮选择正弦函数的幅值,使用复选框输入正弦函数的时间范围,函数的幅值,使用复选框输入正弦函数的时间范围,正弦函数的行向量在文本框中显示运行界面。正弦函数的行向量在文本框中显示运行界面。第6章 MATLAB高级图形设计6.2.6 下拉菜单、列表框、坐标轴和下拉菜单、列表框、坐标轴和ActiveX
17、控件控件n1. 下拉菜单(下拉菜单(Pop-Up Menu)和列表框()和列表框(List Box)n下拉菜单和列表框的常用属性都有下拉菜单和列表框的常用属性都有string和和value:nstring属性是所有的下拉列表项,可以在属性编辑器中输属性是所有的下拉列表项,可以在属性编辑器中输入,在程序代码中输入多个列表项时使用入,在程序代码中输入多个列表项时使用“|”分隔;分隔;nvalue属性是当前所选项的序号,如果选择第一项,则属性是当前所选项的序号,如果选择第一项,则value=1。n回调函数回调函数n2. 坐标轴(坐标轴(Axes)n坐标轴是输出图形的区域,坐标轴是输出图形的区域,pl
18、ot命令则是创建坐标轴并将命令则是创建坐标轴并将图形输出到坐标轴中,可以使用图形输出到坐标轴中,可以使用 title、xlabel、ylabel、zlabel和和 text函数在坐标轴中添加文本。坐标轴的默认函数在坐标轴中添加文本。坐标轴的默认Tag属性是属性是axes1。第6章 MATLAB高级图形设计n例例6-6 创建一个用户界面,使用列表框输入二阶系创建一个用户界面,使用列表框输入二阶系统的阻尼系数,在两个坐标轴中分别绘制阶跃响应统的阻尼系数,在两个坐标轴中分别绘制阶跃响应曲线和脉冲响应曲线。曲线和脉冲响应曲线。第6章 MATLAB高级图形设计6.2.7 菜单的设计菜单的设计n1菜单编辑
19、器菜单编辑器n在可视化界面环境中选择菜单在可视化界面环境中选择菜单“Tools”“Menu Editor”或单击工具栏按钮,就会出现菜单编辑器窗口,其中或单击工具栏按钮,就会出现菜单编辑器窗口,其中“Menu Bar”是普通菜单设计面板。是普通菜单设计面板。第6章 MATLAB高级图形设计n2回调函数回调函数n每个菜单项都有每个菜单项都有callback回调函数,回调函数,nfunction new_Callback(hObject, eventdata, handles)n3. 使用句柄对象创建菜单使用句柄对象创建菜单nh_menu=uimenu(h_Parent,PropertyName,
20、ProperValue,) %创建菜单创建菜单n说明:说明:h_Parent是菜单的父对象,如果是窗体,则在窗体创是菜单的父对象,如果是窗体,则在窗体创建新菜单,如果是菜单则创建该菜单的子菜单。建新菜单,如果是菜单则创建该菜单的子菜单。第6章 MATLAB高级图形设计6.3 对话框对话框6.3.1 输入框输入框n输入框为用户的输入信息提供了界面,使用输入框为用户的输入信息提供了界面,使用inputdlg函数函数创建,并提供了创建,并提供了“Ok”和和“Cancel”两个按钮,两个按钮,inputdlg函数的命令格式如下:函数的命令格式如下:nanswer = inputdlg(prompt,t
21、itle,lineno,defans,addopts) %创建输入框创建输入框n例:例: prompt=请输入正弦函数的频率请输入正弦函数的频率;n defans=10;n w=inputdlg(prompt,输入输入,1,defans)什么是对话框?什么是对话框?第6章 MATLAB高级图形设计6.3.2 输出框输出框n1输出消息框输出消息框n输出消息框用来显示各种输出信息,使用输出消息框用来显示各种输出信息,使用msgbox函数来函数来创建,只有一个创建,只有一个“Ok”按钮,并利用图标表示不同的信息按钮,并利用图标表示不同的信息类型,类型,msgbox函数的命令格式如下:函数的命令格式如
22、下:nh=msgbox(message,title,icon,icondata,iconcmap,createmode) %创建输出消息框创建输出消息框n例:例:n message=输入参数超出范围输入参数超出范围;n icon=error;n h=msgbox(message,出错出错,icon)2专用输出框专用输出框表表6-7第6章 MATLAB高级图形设计6.3.3 文件管理框文件管理框nFileName, PathName=uigetfile(FiltrEspec, Title,x,y) %打开文件打开文件 nFileName, PathName=uiputfile(FiltrEspe
23、c, Title,x,y) %保存文件保存文件ndirname=uigetdir(startpath, Title) %浏览文件浏览文件例例6-10 使用使用uigetfile函数打开文件对话框,函数打开文件对话框,uiputfile函数函数打开保存文件对话框,打开保存文件对话框,uigetdir函数浏览文件夹。函数浏览文件夹。f,p=uigetfile(*.*,打开文件打开文件);f1,p1=uiputfile(ex6_10.m,保存文件保存文件);dirname=uigetdir(C:Program Files, 浏览文件浏览文件);第6章 MATLAB高级图形设计6.4 图像和声音图像和
24、声音6.4.1 图像图像nMATLAB 7.3的图像处理工具箱可以读入、显示和处理多种标准的图像格式文件,包括.bmp、.gif、.jpg、.tif、.png、.hdf、.pcx、.xwd、.ico和.cur等。n1图像类型图像类型n(1)索引图像n(2)灰度(强度)图像n(3)RGB(真彩)图像第6章 MATLAB高级图形设计n2. 图像处理函数图像处理函数n(1)图像文件的信息)图像文件的信息n图像文件可以使用imfinfo函数查询其信息,包括文件名、文件大小、图像尺寸、图像类型和每个像素的位数等信息。n(2)图像的读写)图像的读写nx,map = imread(filename,fmt)
25、%读取图像文件读取图像文件nimwrite(x,map,filename,fmt) %写入图像文件写入图像文件n说明:x是图像文件的数据矩阵;map是颜色表矩阵,可省略,当imread读取的不是索引图像时则为,当imwrite写入的不是索引图像,map省略;filename是图像文件名;fmt是文件格式,如bmp、cur、gif、jpg或ico等,可省略。n(3)图像的显示)图像的显示nh=imshow(x,low high) %按颜色表设定显示灰度图像按颜色表设定显示灰度图像nh=imshow(x,map) %显示索引图像显示索引图像nh=imshow(filename) %显示显示RGB图
26、像文件图像文件例例6-11 第6章 MATLAB高级图形设计6.4.2 声音声音n1读取和写入声音文件数据读取和写入声音文件数据nMATLAB 7.3提供了提供了auread和和wavread函数分别读函数分别读取取.au和和.wav声音文件的数据,声音文件的数据,auwrite和和wavwrite函函数将声音数据写入文件,数将声音数据写入文件,aufinfo和和wavfinfo函数用来函数用来获取获取.au和和.wav文件的信息。文件的信息。n2播放声音文件播放声音文件 nsound和和soundsc函数实现将向量转换为音频信号,并函数实现将向量转换为音频信号,并转换到转换到speaker进
27、行的播放;进行的播放;audioplayer创建一个音创建一个音频播放器对象,用来播放声音信号;频播放器对象,用来播放声音信号;beep实现响铃。实现响铃。例例6-13 y=wavread(01.wav); yinf=wavfinfo(01.wav); sound(y, 20000); %播放速率播放速率20000Hz 第6章 MATLAB高级图形设计6.5 视频与动画设计视频与动画设计6.5.1 视频视频nMATLAB 7.3的视频帧称为的视频帧称为MATLAB Movie,是结构,是结构体类型,包括体类型,包括cdata和和colormap两个域,分别用来存两个域,分别用来存放图像数据和颜
28、色表,通过放图像数据和颜色表,通过Movie函数可以实现播放函数可以实现播放AVI视频文件,以及读取和生成视频文件,以及读取和生成MATLAB Movie。n1. 获取视频文件的信息获取视频文件的信息nmmfileinfo函数用来获取各种多媒体文件的信息,包函数用来获取各种多媒体文件的信息,包括视频和音频文件括视频和音频文件.avi、.mpg、.wav、.mp3、.wma和和.mid等;等;aviinfo函数用来获取视频或音频函数用来获取视频或音频.avi文件文件的信息,使用的信息,使用mmfileinfo和和aviinfo函数获取的文件信函数获取的文件信息是不同的。息是不同的。例例6-14
29、获取视频获取视频AVI文件的信息文件的信息mmfileinfo(GRB3014.wmv); aviinfo(asimo.avi); 第6章 MATLAB高级图形设计n2读取视频数据读取视频数据n(1)aviread函数函数nmov=aviread(filename,index) %获取获取filename文文件的视频帧件的视频帧n(2)getframe函数函数nf=getframe(h,rect) %获取图形对象的视频帧获取图形对象的视频帧n3. 播放视频文件播放视频文件nmovie(M,n) %将视频帧将视频帧M播放播放n遍遍第6章 MATLAB高级图形设计6.5.2 以电影方式创建动画以电
30、影方式创建动画n以电影方式是将多个画面逐帧播放,类似于电影的原理,创以电影方式是将多个画面逐帧播放,类似于电影的原理,创建动画的步骤如下:建动画的步骤如下:n(1)使用)使用getframe命令来抓取每个视频帧,视频帧以列向量命令来抓取每个视频帧,视频帧以列向量保存到矩阵中,一般使用保存到矩阵中,一般使用for循环来抓取并保存每个视频帧;循环来抓取并保存每个视频帧;n(2)使用)使用movie命令来播放视频帧矩阵。命令来播放视频帧矩阵。n例例6-15 以电影方式产生视频帧并播放动画,显示二阶系统当以电影方式产生视频帧并播放动画,显示二阶系统当阻尼系数阻尼系数在在01范围内不断增大时,阶跃响应曲
31、线的动画。范围内不断增大时,阶跃响应曲线的动画。 第6章 MATLAB高级图形设计6.5.3 以对象方式创建动画以对象方式创建动画n创建动画的步骤如下:创建动画的步骤如下:n(1)绘制背景图)绘制背景图n(2)设置对象擦除属性)设置对象擦除属性n 设置动作对象的擦除属性,擦除属性EraseMode有四种,normal是重画整个图形,background是擦除背景,会擦除对象和它下面的其他图像;xor是只画与背景色不一致的新对象点,擦除不一致的原对象点,通常这种方式用来创建动画;none是不做任何擦除。n(3)确定对象的新位置)确定对象的新位置n计算得出动作对象每次的新位置,设置对象的xdata和ydata属性。n(4)刷新屏幕)刷新屏幕n绘制了新对象后应该刷新屏幕,使新对象显示出来,刷新屏幕用drawnow命令实现。第6章 MATLAB高级图形设计n例例6-16 以对象方式创建动画,显示一个红色以对象方式创建动画,显示一个红色圆点沿三维曲线移动的动画。圆点沿三维曲线移动的动画。第6章 MATLAB高级图形设计6.6 一个综合仿
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肾病的临床护理
- 人教部编版九年级上册语文《故乡》教学设计
- 致死性肝内胆汁淤积综合征的临床护理
- 2025中式红木家具购销合同模板
- 沈阳初一月考试卷及答案
- 商河一中会考试卷及答案
- 肇庆市实验中学高中历史二:第四单元中国社会主义发展道路的探索复习教案
- 2025河南公路郑新线C合同段
- 2025年中国外用药瓶数据监测研究报告
- 空调器自适应调节原理考核试卷
- GB/T 14054-1993辐射防护用固定式X、γ辐射剂量率仪、报警装置和监测仪
- GB/T 11865-2008船用离心通风机
- GA/T 652-2006公安交通管理外场设备基础施工通用要求
- 高考语文一轮复习:作文素材《长津湖》 课件(53张PPT)
- 《课程与教学论》形考二答案
- 公积金提取单身声明
- 高处作业吊篮进场验收表
- 八年级英语15篇完形填空(附答案)
- 护理管理学练习题题库
- 8.生发项目ppt课件(66页PPT)
- 手榴弹使用教案
评论
0/150
提交评论