第五讲道客巴巴matlab句柄绘图和GUI课件

上传人:20****08 文档编号:241477295 上传时间:2024-06-28 格式:PPT 页数:52 大小:1.43MB
返回 下载 相关 举报
第五讲道客巴巴matlab句柄绘图和GUI课件_第1页
第1页 / 共52页
第五讲道客巴巴matlab句柄绘图和GUI课件_第2页
第2页 / 共52页
第五讲道客巴巴matlab句柄绘图和GUI课件_第3页
第3页 / 共52页
点击查看更多>>
资源描述
第五讲道客巴巴matlab句柄绘图和GUI第五讲道客巴巴matlab句柄绘图和GUI1高层绘图与底层绘图的区别高层绘图函数是对整个图形进行操作的,图形每一部分的属性都是按缺省方式设置的,充分体现了matlab语言的实用性。底层绘图函数可以定制图形,对图形的每一部分进行控制,用户可以用来开发用户界面以及各专业的专用图形。充分体现了matlab语言的开发性。高层绘图与底层绘图的区别高层绘图函数是对整个图形进行操作2第五讲道客巴巴matlab句柄绘图和GUI课件3第五讲道客巴巴matlab句柄绘图和GUI课件4二、图形对象和句柄1.图形对象 matlab把用于数据可视和界面制作的基本绘图要素称为句柄图形对象(Handle graphics object),它是图形系统中最基本、最底层的单元,每个图形对象可以被独立地操作。在 matlab中生成的每个具体图形,由若干不同对象构成。每个具体图形不必包含全部对象,但每个图形必须具备根屏幕和图形窗。二、图形对象和句柄图形对象 matlab把用于数据可视和5父对象子对象图形对象的基本要素以根屏幕为先导图形对象之间的关系为父代与子代的关系窗口1窗口n窗口2界面控制界面菜单轴线面字块像根屏幕根屏幕父对象图形对象的基本要素以根屏幕为先导图形对象之间的关系为父6说明:根:图形对象的根,对应于计算机屏幕,根只有一个,其它所有图形对象都是根的后代。图形窗口:根的子代,窗口的数目不限,所有图形窗口都是根屏幕的子代,除根之外,其它对象则是窗的后代。界面控制:图形窗口的子代,创建用户界面控制对象,使得用户可采用鼠标在图形上作功能选择,并返回句柄。说明:7界面菜单:图形窗口的子代,创建用户界面菜单对象 轴:图形窗口的子代,创建轴对象,并返回句柄,线面字块像的父辈线:轴的子代,创建线对象面:轴的子代,创建块对象字:轴的子代,创建字对象块:轴的子代,创建块对象像:轴的子代,创建图像对象界面菜单:图形窗口的子代,创建用户界面菜单对象 8窗口对象线对象轴对象窗口对象线对象轴对象9面对象轴对象像对象块对象线对象文字对象面对象轴对象像对象块对象线对象文字对象102.创建图形对象的底层函数figure创建图形窗口调用格式:h=figure(n)n为窗口序号uicontrol图形界面控制调用格式:h=uicontrol(property,value)property/value确定控制类型2.创建图形对象的底层函数figure创建图形窗口11uimenu创建用户界面菜单调用格式:h=uimenu(property,value)property/value 确定菜单形式。axes 创建轴对象 h=axes(property,)定义轴对象的位置与大小 left,bottom width,heightuimenu创建用户界面菜单 left,bottom12例:axes(position,0.1 0.1 0.5 0.2)x=0:0.5:10;y=x;plot(x,y)还有axis命令,定义了轴的位置、宽度和高度。例:axis(0 10 2 10)注意二者的区别例:axes(position,0.1 0.1 0.513line 创建线对象 h=line(x,y,z)patch 创建块对象 h=patch(x,y,z,c)x,y,z定义多边形,c确定填充颜色。surface 创建面对象,是底层函数 h=surface(x,y,z,c)x,y,z三维曲面坐标,c颜色矩阵。而surf是高级函数。二维画线 三维画线line 创建线对象 二维画线 三维画线14light灯光对象函数light创建一个灯光源。一个灯光源含三个因素:颜色、风格、位置。调用:light(color,1,1,1,style,local or infinite,position,x,y,z)本地光:X,Y,Z表示光源位置。无穷远光:X,Y,Z表示无穷远光通过该点射向原点。light灯光对象函数light创建一个灯光源。一个灯光源含15例:例:subplot(2,2,1)subplot(2,2,1)membrane%membrane%这是一个库函数这是一个库函数light(color,0.9 0.5 0.1,position,0,-light(color,0.9 0.5 0.1,position,0,-2,1)2,1)%风格省略为无穷远,光顺序通过风格省略为无穷远,光顺序通过(0 0 0)(0 0 0)和和(0-2(0-2 1)1)subplot(2,2,2)subplot(2,2,2)membrane membrane light(color,0.9 0.0 light(color,0.9 0.0 0.1,style,local,position,1,-1,1)0.1,style,local,position,1,-1,1)%风格为本地光,光源在风格为本地光,光源在(1-1 1)(1-1 1)位置位置例:16第五讲道客巴巴matlab句柄绘图和GUI课件17image 显示图象 h=image(x);x为图像矩阵text 标注文字对象 h=text(x,y,string)例:h=text(0.1,0.2,super star)每个底层函数只能创建一个图形对象,并将它们置于适当的父辈对象中。确定标注位置标注字符串image 显示图象 确定标注位置标注字符串183.图形对象的属性 图形对象是由属性来描述的,可以通过修改属性来控制对象外观、行为等诸多特征。用户不但可以查询当前任意对象的任意属性值,而且可以指定大多数属性的取值。3.图形对象的属性 图形对象是由属性来描述的,可以通过修改19在高层绘图中对图形对象的描述一般是省缺的或由高层绘图函数自动设置的,因此对用户来说几乎是不透明的。但句柄绘图中上述图形对象都是用户需要经常使用的,所以要作到心中有数,用句柄设置图形对象的属性。在高层绘图中对图形对象的描述一般是省缺的或由高层绘图函数自20什么是句柄?什么是句柄?句柄是图形对象的标识代码句柄是图形对象的标识代码(唯一的身份唯一的身份),标,标识代码含有图形对象的各种必要的属性信息。识代码含有图形对象的各种必要的属性信息。各图形对象的句柄数据格式:各图形对象的句柄数据格式:根屏幕根屏幕 0 0 图形窗口图形窗口 正整数,表示图形窗口序号正整数,表示图形窗口序号 其它对象其它对象 对应的双精度浮点数对应的双精度浮点数4.句柄(handle)与句柄操作什么是句柄?4.句柄(handle)与句柄操作21 所有能创建图形对象的所有能创建图形对象的matlab函数都可给出函数都可给出所创建图形对象的句柄所创建图形对象的句柄例:创建例:创建1 1号窗口,返回句柄号窗口,返回句柄 h=figure(1)h=figure(1)h=1 h=1 返回值为窗口号数返回值为窗口号数h=figure(color,1 0.1 0,position,0 0 h=figure(color,1 0.1 0,position,0 0 200 100,name,ww)200 100,name,ww)例:例:h=line(1:6,1:6)h=line(1:6,1:6)创建线对象的同时也建立创建线对象的同时也建立了一个唯一的句柄了一个唯一的句柄 变量变量h h是句柄值是句柄值符点数符点数 所有能创建图形对象的matlab函数都可给出所创建图形对象22句柄属性的设置与修改句柄属性的设置与修改get:get:获得句柄图形对象的属性和返回某些获得句柄图形对象的属性和返回某些 对象的句柄值对象的句柄值get(gca,get(gca,属性属性)返回当前坐标的单项属性值返回当前坐标的单项属性值set:set:改变图形对象的属性改变图形对象的属性专用函数:专用函数:gcfgcf:当前窗口对象的句柄:当前窗口对象的句柄 Get Current Get Current Figure Figuregcagca:当前轴对象的句柄:当前轴对象的句柄 Get Current Get Current Axes Axesget(gca)get(gca)返回当前坐标的所有属性值返回当前坐标的所有属性值二、图形对象属性的获得与设置句柄属性的设置与修改二、图形对象属性的获得与设置23操作格式:h=gcf 将当前窗口对象的句柄返回hget(h)或get(gcf)查阅当前窗口对象的 属性delete(gcf)删除当前窗口的属性例:h=line(x,y)1.get(h)2.get(gca,children)轴的子代操作格式:24例:创建一个线对象并返回线对象的句柄值 h1=line(0:10,0:10)h1=57.0001h1为句柄的代码值例:创建一个线对象并返回线对象的句柄值25查阅线对象的属性名称和属性值get(h1)Color=1 1 0EraseMode=normalLineStyle=-LineWidth=0.5MarkerSize=6Xdata=(1 by 11)Ydata=(1 by 11)Zdata=查阅线对象的属性名称和属性值26ButtonDownFcn=ButtonDownFcn=Children=Children=Clipping=onClipping=onInterruptible=noInterruptible=noParent=56.0001Parent=56.0001Type=lineType=lineUserData=UserData=Visible=onVisible=on根据轴是线对象的父代,可查轴的句柄根据轴是线对象的父代,可查轴的句柄 get(gca)get(gca)ButtonDownFcn=Children=27可查色序get(gca,colororder)get(gca,colororder)ans=ans=1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1可查色序28设置线条和窗口的颜色set(h1,color,1 0 0)set(h1,color,1 0.5 0)设置线条和窗口的颜色29set(gcf,color,0.5 0.5 0.5)set(gcf,color,0.5 0.6 0.8)set(gcf,color,0.5 0.5 0.5)30例:作正弦、余弦曲线,将正弦曲线改为虚线,将余弦曲线幅度减为1/2高度,如何用句柄实现。x=0:2*pi/180:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,x,y2,x,zeros(size(x),:)例:作正弦、余弦曲线,将正弦曲线改为虚31首先查询各对象的属性get(gcf)get(gcf)h=get(gcf,children)h=get(gcf,children)h=h=60.0004 60.0004hh=get(gca,children)hh=get(gca,children)hh=hh=70.0004 70.0004 69.0004 69.0004 68.0004 68.0004首先查询各对象的属性32修改属性y11=get(hh(2),ydata);y22=y11/2;set(hh(2),ydata,y22)set(hh(3),linestyle,:)修改属性y11=get(hh(2),ydata);33 控制一个图形对象是通过句柄实现的,具体是通过句柄操作函数get,set将某对象句柄属性作设置与修改。1.对象属性的直接操作 对象属性的直接操作是通过当前句柄来实现的,所以首先要获得当前句柄值以及对象的属性,然后再查询或修改。三、对象的属性操作 控制一个图形对象是通过句柄实现的,具体是通过句柄操作函34get(h)get(h,propertyname)set(h)set(h,propertyname,value)set(h,属性名称,新属性)color,r linestyle,:figurecolor,mget(h)352.对象属性的继承操作对象属性的继承操作是通过父代对象,设置省缺对象属性来实现的。父代句柄属性中设置缺省值后,所有子代对象均可以继承该属性的省缺值。属性省缺值的描述结构为:Dfault+对象名称+对象属性2.对象属性的继承操作36如:DefaultFigureColorDefaultFigureColor 图形窗口的颜色图形窗口的颜色 DefaultAxesAspaceRatio DefaultAxesAspaceRatio 轴的视图比率轴的视图比率 DefaultLineLineWide DefaultLineLineWide 线的宽度线的宽度 DefaultLineColor DefaultLineColor 线的颜色线的颜色 省缺值的获得与设置也是由get,set函数实现的如:DefaultFigureColor37例:get(0,DefaultFigureColor)获得图形 窗口的省缺值 set(h,DefaultLineColor,r)设置线的 颜色为红色例:在图上添加文字注释,颜色为红色 set(gca,DefaultTextColor,1 0 0)gtext(正弦)gtext(余弦)%鼠标取点在轴对象上设置字对象的颜色省缺值为红色继承该省缺值在图上添加红色的文字注释例:38例:在轴对象上(父代对象)设置线的颜色省缺值为红色x=0:2*pi/180:2*pi;y=sin(2*x);set(gca,DefaultLineColor,1 0 0);h=line(x,y)h=68.0001set(h,color,default)变成缺省的红色例:在轴对象上(父代对象)设置线的颜色省缺值为红色39第五讲道客巴巴matlab句柄绘图和GUI课件40例:x=0:2*pi/180:2*pi;y=sin(2*x);h=line(x,y)set(0,DefaultFigureColor,0.5 0.5 0.5)将所有新图形窗口的颜色由省缺值黑色设置为适中的灰色例:x=0:2*pi/180:2*pi;y=sin(2*x)41set(h,color,m,linewidth,2,linestyle,*)set(h,color,m,linewidth,2,linestyle,*)set(h,color,m,linewidth,42set(0,defaultfigurecolor,b)set(0,defaultfigurecolor,b)set(0,defaultaxescolor,g)set(0,defaultaxescolor,g)h=line(x,y)h=line(x,y)set(h,color,r)set(h,color,r)set(gca,xcolor,w)set(gca,xcolor,w)set(gca,ycolor,w)set(gca,ycolor,w)set(0,defaultfigurecolor,b43h=surf(peaks(30)set(0,defaultsurfaceedgecolor,w)set(h,edgecolor,default)h=surf(peaks(30)444.其它操作default 由父代继承factory 厂家设定省缺值remove 清除设定省缺值例:set(gca,defaultlinecolor,remove)set(h,color,factory)注意:plot,line命令遵循colororder色序对设置省缺值无效4.其它操作45四、其他功能介绍菜单函数menu K=MENU(HEADER,ITEM1,ITEM2,.)K=MENU(HEADER,ITEM1,ITEM2,.)例:例:K=menu(K=menu(请选择请选择,plot,mesh,surf),plot,mesh,surf)四、其他功能介绍菜单函数menu46第五讲道客巴巴matlab句柄绘图和GUI课件47GuideGuide48第五讲道客巴巴matlab句柄绘图和GUI课件49Uimenu:设计GUI菜单函数 UIMENU(PropertyName1,value1,PropertyName2,value2,.)Uicontrol:用来在图形窗口中建立控件 UICONTROL(PropertyName1,value1,PropertyName2,value2,.)Uimenu:设计GUI菜单函数505.matlab7属性编辑器Propedit(h)-打开属性编辑器5.matlab7属性编辑器Propedit(h)-51小 结熟悉图形对象句柄与句柄操作掌握图形对象属性的查询与操作能够任意设置图形对象的属性小 结熟悉图形对象句柄与句柄操作52
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!