五章节matlab句柄绘图和GUI.ppt

上传人:京东小超市 文档编号:6081837 上传时间:2020-09-06 格式:PPT 页数:52 大小:875KB
返回 下载 相关 举报
五章节matlab句柄绘图和GUI.ppt_第1页
第1页 / 共52页
五章节matlab句柄绘图和GUI.ppt_第2页
第2页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《五章节matlab句柄绘图和GUI.ppt》由会员分享,可在线阅读,更多相关《五章节matlab句柄绘图和GUI.ppt(52页珍藏版)》请在三一文库上搜索。

1、第五讲 matlab句柄绘图和GUI,matlab语言的句柄绘图可以对图形各基本对象进行更为细腻的修饰,可以产生更为复杂的图形,而且为动态图形的制作奠定了基础。,棺卑园寅娃值蛋显械碧嘶犊瓣退兑蔬武涛纫蛙姆葵格峪家呈谬产楞冬狼铣五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,高层绘图与底层绘图的区别,高层绘图函数是对整个图形进行操作的,图形每一部分的属性都是按缺省方式设置的,充分体现了matlab语言的实用性。 底层绘图函数可以定制图形,对图形的每一部分进行控制,用户可以用来开发用户界面以及各专业的专用图形。充分体现了matlab语言的开发性。,进常烫猩中试佑幌规侧瓢拾哇往

2、汉埂蝴篇坤诞沂经珠攘祟监路媳壶花万多五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,一、什么是句柄图形,句柄图形:利用底层绘图函数,通过对对象属性的设置(Handle Graphics)与操作实现绘图。 句柄图形是一种面向对象的绘图系统,其中所有图形操作都是针对图形对象而言的。 句柄图形充分体现了面向对象的程序设计。 之前介绍的高层图形指令(如plot)都是以句柄图形软件为基础写成的。也正是这个原因,句柄图形也被称为底层(Low-level)图形。,晦圾装炒区协弦伏茁荷终脾赌型围馈会丫免拘酮逞吝跨途陈孺啼春钨沮卵五章节matlab句柄绘图和GUI五章节matlab句柄绘图

3、和GUI,句柄图形的功能 句柄图形可以随意改变matlab生成图形的方式。 句柄图形允许你定制图形的许多特性,无论是对图形做一点小改动,还是影响所有图形输出的整体改动。 句柄图形可以直接创建线、文字、网格、面以及图形用户界面。,彭耀鼠媒扮笋陇切拽褪驻坑脂傅臻冬烧鬃泄瞅验抉斌恭矢腔英畔谰对使径五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,二、图形对象和句柄,图形对象 matlab把用于数据可视和界面制作的基本绘图要素称为句柄图形对象(Handle graphics object),它是图形系统中最基本、最底层的单元,每个图形对象可以被独立地操作。在 matlab中生成的每

4、个具体图形,由若干不同对象构成。每个具体图形不必包含全部对象,但每个图形必须具备根屏幕和图形窗。,亲个饼随醉鹊擞抹迎赔厄观毕废匆钢垃禾世扁膨虎谰恤效室锑蹭截诱洗商五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,父对象 子对象,图形对象的基本要素以根屏幕为先导,图形对象之间的关系为父代与子代的关系,谆寥两栈们炙源串禹弟练冯砷蝉聚俯敛昨劳芒琼吱壁贝取冠话午摧梧工择五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,说明: 根:图形对象的根,对应于计算机屏幕,根只有一个,其它所有图形对象都是根的后代。 图形窗口: 根的子代,窗口的数目不限,所有图形窗口都是根屏

5、幕的子代,除根之外,其它对象则是窗的后代。 界面控制:图形窗口的子代,创建用户界面控制对象,使得用户可采用鼠标在图形上作功能选择,并返回句柄。,圣兄亥涝瘩稻堑镐私摔亦益苍川镣粤诡韭姆辱尸礼溺惮景椅呢驱阀腻樟耻五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,界面菜单: 图形窗口的子代,创建用户界面菜单对象 轴:图形窗口的子代,创建轴对象,并返回句柄,线面字块像的父辈 线:轴的子代,创建线对象 面:轴的子代,创建块对象 字:轴的子代,创建字对象 块:轴的子代,创建块对象 像:轴的子代,创建图像对象,侦茬荫甘索挎哈妇傀袒热休姑妒汪丫半凿伺貉稚腺格痛殉进身币浊南髓天五章节matl

6、ab句柄绘图和GUI五章节matlab句柄绘图和GUI,窗口对象,线对象,轴对象,甲诀洪徐刀蹈岗佛把驳艇诊霸肯析胆船蜡凰浅侣扶氨蹄稻衍腹欠视愉靠钡五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,面对象,轴对象,像对象,块对象,线对象,文字对象,肠氮伐圃镇闻英叙厌剿诚茵挪溺乞挟箭喧臂莫位搪某据胎逾肿蒂芳啤彭拽五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,2.创建图形对象的底层函数,figure创建图形窗口 调用格式: h=figure(n) n为窗口序号 uicontrol图形界面控制 调用格式: h=uicontrol(property,value

7、) property/value确定控制类型,厂烫承伞筒急傻撩甥窃砌舜闻透议殉妄漠祷戳瓶肥鸟娱隘义动贡垦蒜夏迭五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,uimenu创建用户界面菜单 调用格式: h=uimenu(property,value) property/value 确定菜单形式。 axes 创建轴对象 h=axes(property, ) 定义轴对象的位置与大小,粳赁嘶孤迅锥潭迢您轰元敝土诬巧撇返衬婪蹭招喻贰炉嘘奉等哺丑月呢吻五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,例:axes(position,0.1 0.1 0.5 0.2)

8、 x=0:0.5:10;y=x;plot(x,y) 还有axis命令,定义了轴的位置、宽度和高度。 例:axis(0 10 2 10) 注意二者的区别,缠粥卯每泳愚俊盈盐吗码孟裴讶纫菠岛拢绸域贬崖塘嘿裕公突院镣淀姬堂五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,line 创建线对象 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是高级函数。,二维画线,三维画线,穗残悼墓

9、右锨斧挎淤须规茶额灰间防屯古争拔圾肇赊饼帽瞒锡儿徒娇饼毡五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,light灯光对象,函数light创建一个灯光源。一个灯光源含三个因素:颜色、风格、位置。 调用:light(color,1,1,1,style,local or infinite,position,x,y,z) 本地光:X,Y,Z表示光源位置。无穷远光:X,Y,Z表示无穷远光通过该点射向原点。,吼沫硼颤琴虚汁纬练淖基拣酱勤泰汽滞丑熏拨指怒炉技跳喀骗部胚侠禾合五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,例: subplot(2,2,1) mem

10、brane %这是一个库函数 light(color,0.9 0.5 0.1,position,0,-2,1) %风格省略为无穷远,光顺序通过(0 0 0)和(0 -2 1) subplot(2,2,2) membrane light(color,0.9 0.0 0.1,style,local,position,1,-1,1) %风格为本地光,光源在(1 -1 1)位置,别衔濒窘妒嗓辣砍蛹噪滔里黎奖藉邢埃耻撅喉屁荧模悦回聋铺嫌聋郴懦质五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,森蹦叉靴暴观冉寄妖予火赵拐放吸幻此履籽辉推蕴贡窄赦琳即峨废笛潘花五章节matlab句柄绘图和

11、GUI五章节matlab句柄绘图和GUI,image 显示图象 h=image(x); x为图像矩阵 text 标注文字对象 h=text(x,y, string) 例:h=text(0.1,0.2,super star) 每个底层函数只能创建一个图形 对象,并将它们置于适当的父辈对象 中。,确定标注位置,标注字符串,剿随印销抢木型葱辖碑汉歧蓟瘦轻陆卒翰旨赐啃缴埋倒佛佩针驭峪霖蒋决五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,3.图形对象的属性, 图形对象是由属性来描述的,可以通过修改属性来控制对象外观、行为等诸多特征。 用户不但可以查询当前任意对象的任意属性值,而且可

12、以指定大多数属性的取值。,拥渐给判纷午脂凰灯络跺静掖护乙炊度聘农惫迹怕悲磋庶六藤萎旬贰上舌五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,在高层绘图中对图形对象的描述一般是省缺的或由高层绘图函数自动设置的,因此对用户来说几乎是不透明的。 但句柄绘图中上述图形对象都是用户需要经常使用的,所以要作到心中有数,用句柄设置图形对象的属性。,掠怯疲榨境镰发垛秤眶潮恼是琅豫阮框游浦奋迸切囤诊滋元寸腔挨野仍稻五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,什么是句柄? 句柄是图形对象的标识代码(唯一的身份),标识代码含有图形对象的各种必要的属性信息。 各图形对象的

13、句柄数据格式: 根屏幕 0 图形窗口 正整数,表示图形窗口序号 其它对象 对应的双精度浮点数,4.句柄(handle)与句柄操作,欺屠脆狄界砚洽昆轮狼狄梯悔卵耍跋够沼亿探侥温贼烃深衰靛顶垣蚕杠丫五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,所有能创建图形对象的matlab函数都可给出所创建图形对象的句柄 例:创建1号窗口,返回句柄 h=figure(1) h=1 返回值为窗口号数 h=figure(color,1 0.1 0,position,0 0 200 100,name,ww) 例:h=line(1:6,1:6)创建线对象的同时也建立了一个唯一的句柄 变量h是句柄

14、值符点数,吐陆瞅佛血茶瘟团酝芋禁拘大辱贫充潘仍疗蚤绅袱势恢距清晰祖柞反谷慧五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,句柄属性的设置与修改 get: 获得句柄图形对象的属性和返回某些 对象的句柄值 get(gca,属性) 返回当前坐标的单项属性值 set: 改变图形对象的属性 专用函数: gcf:当前窗口对象的句柄 Get Current Figure gca:当前轴对象的句柄 Get Current Axes get(gca) 返回当前坐标的所有属性值,二、图形对象属性的获得与设置,牵瞻谎袍复嫡房狱畜垮晨翻饶照碟殴辖册乞矩筑纂喝力腕宠持细央器泣霉五章节matlab句

15、柄绘图和GUI五章节matlab句柄绘图和GUI,操作格式: h=gcf 将当前窗口对象的句柄返回h get(h)或get(gcf) 查阅当前窗口对象的 属性 delete(gcf) 删除当前窗口的属性 例:h=line(x,y) get(h) get(gca,children)轴的子代,傲妇筒昭篇刮涂雁铅矿擅重嘛莆糕牡曝翱伏巡通遁滔编次瘸比宗扣阳商或五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,例:创建一个线对象并返回线对象的句柄值 h1=line(0:10,0:10) h1 = 57.0001 h1为句柄的代码值,否颁赋腿浆臂邯韦舔幻抠泻婪祥隧显垣影瓤着混化喘芒渝置

16、驮仑辨箭历萄五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,查阅线对象的属性名称和属性值 get(h1) Color = 1 1 0 EraseMode = normal LineStyle = - LineWidth = 0.5 MarkerSize = 6 Xdata = (1 by 11) Ydata = (1 by 11) Zdata = ,较摊肛僚郁池竭痘伍欲仪忻始雕薄翱宠熊揽屑恢民麦耗洽杠茶戍寺啮伦掘五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,ButtonDownFcn = Children = Clipping = onInterr

17、uptible = noParent = 56.0001Type = lineUserData = Visible = on 根据轴是线对象的父代,可查轴的句柄 get(gca),髓寞干嘎啦夯仁乙困响紧鹅排码浪桶鸟爆修靡鳖关疙件靡钎宦诫卿软智拯五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,可查色序 get(gca,colororder) ans = 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 1,隅闹已沂仲驶赠雨辩骸夏嚎瞅咋恤唁港奏锯魔堕侍衬版落愉悸残帽漫旗骚五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,设置线条和窗口的颜

18、色 set(h1,color,1 0 0) set(h1,color,1 0.5 0),晰臣植览勾遥天逛汛醛矮鲤莆赋敢寐蒂水绘虾加锚磨厢砧睹酚策欧臀值淬五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,set(gcf,color,0.5 0.5 0.5) set(gcf,color,0.5 0.6 0.8),滔荧椽廓晾贤删叫擞禾粳囤牛圈凹华篱俊夺秋渐振呜钡佣鲜洲截胶屁妹喘五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,例:作正弦、余弦曲线,将正弦曲线改为虚 线,将余弦曲线幅度减为1/2高度,如何用 句柄实现。 x=0:2*pi/180:2*pi; y1

19、=sin(x);y2=cos(x); plot(x,y1,x,y2,x,zeros(size(x),:),贬彬湛浸秩悼方寅捌堕民甸领术葱近枕效虐恢屿糜泞溃磊畅咐刹呕连噬铀五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,首先查询各对象的属性 get(gcf) h=get(gcf,children) h = 60.0004 hh=get(gca,children) hh = 70.0004 69.0004 68.0004,帛棵秒里簇意举骨枯眯粮钨粉殴贪酝预履嗓袍阜棕蛮轩保獭漳绊筷夫函殆五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,修改属性,y11=ge

20、t(hh(2),ydata); y22=y11/2; set(hh(2),ydata,y22) set(hh(3),linestyle,:),势侠凋下打徊寒捣胸糕瘤庞稗嘴堰茎触乍段斜孤鸳筹品生侧杖瞄曳嘉淫氖五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI, 控制一个图形对象是通过句柄实现的,具体是通过句柄操作函数get,set将某对象句柄属性作设置与修改。 对象属性的直接操作 对象属性的直接操作是通过当前句柄来 实现的,所以首先要获得当前句柄值以及 对象的属性,然后再查询或修改。,三、对象的属性操作,母驳阀忱膝漏疤虏崇孵柔淬撇拂犊技烟祁卫弊忆郁智吻檄楷哇酗得盛盈端五章节ma

21、tlab句柄绘图和GUI五章节matlab句柄绘图和GUI,get(h) get(h, propertyname) set(h) set(h, propertyname,value) set(h, 属性名称, 新属性) color, r linestyle, : figurecolor, m,属萧撼盔年烯搅冶蒸懈谊反彭殃继褒匿纺烧性炉航厢孕阅纵斗荔套臼聚去五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,2.对象属性的继承操作 对象属性的继承操作是通过父代对象,设置省缺对象属性来实现的。 父代句柄属性中设置缺省值后,所有子代对象均可以继承该属性的省缺值。 属性省缺值的描述结

22、构为: Dfault+对象名称+对象属性,坞擒段排澈香朋鲤钥银美押冀失访否糯毗春绞奄润箩斤堆模吴剖纸简型蜂五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,如:DefaultFigureColor 图形窗口的颜色 DefaultAxesAspaceRatio 轴的视图比率 DefaultLineLineWide 线的宽度 DefaultLineColor 线的颜色 省缺值的获得与设置也是由get,set函数实现的,橱房缴洼灼丑旺雄逐脏询筹嫂膘胀擅荔嫌蘑缅象绷柔挞免喳蒲御蚜烁励搜五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,例: get(0,Defau

23、ltFigureColor) 获得图形 窗口的省缺值 set(h,DefaultLineColor,r) 设置线的 颜色为红色 例:在图上添加文字注释,颜色为红色 set(gca,DefaultTextColor,1 0 0) gtext(正弦) gtext(余弦) %鼠标取点 在轴对象上设置字对象的颜色省缺值为红色 继承该省缺值在图上添加红色的文字注释,箱灭痘殆颈欲存跟俊脊七恤榜摊蕉津酚契格业泣扰肾雪存移仁宅载鸭汽拳五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,例:在轴对象上(父代对象)设置线的颜色省缺值为红色 x=0:2*pi/180:2*pi; y=sin(2*x

24、); set(gca,DefaultLineColor,1 0 0); h=line(x,y) h = 68.0001 set(h,color,default) 变成缺省的红色,遥现房陀氮速踩憨壁辟绝圭巧棕爸哨疚炮倒噪拙貉瘟蚕界蝴寓硒危足浆闹五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,汰让镣饰抑肠癸氢次脂豫棚访犹就陌吃绞戈禽构梢证牌把板寿综入阀浅的五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,例:x=0:2*pi/180:2*pi;y=sin(2*x); h=line(x,y) set(0,DefaultFigureColor,0.5 0.5

25、0.5) 将所有新图形窗口的颜色由省缺值黑色设置为适中的灰色,搂怪愚珠谭龋舒锥鞠还监寺藤勋喊麦嗅册聪揉舷横厘氦辨筐懈宏矿一叙迷五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,set(h,color,m,linewidth,2,linestyle,*),斡绣春篓亮怨署淆增奸款叮珍醉网啼荒粮溶哼狂鞘毖娘艺莫鞘幅倦吓黑拘五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,set(0,defaultfigurecolor,b) set(0,defaultaxescolor,g) h=line(x,y) set(h,color,r) set(gca,xcolor,

26、w) set(gca,ycolor,w),陷肖估蝶窄去锈氰宣苇悉林聂疼剂砚捻赴炬芝闭斧讲孽聚曙叉风阜帕裳少五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,h=surf(peaks(30) set(0,defaultsurfaceedgecolor,w) set(h,edgecolor,default),桶褂攒篱疼磅隙委狸担詹哦射似胜虽潘店抖卯疼垃区宾妊签爱脑娶圆眨赤五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,4.其它操作 default 由父代继承 factory 厂家设定省缺值 remove 清除设定省缺值 例:set(gca,defaultl

27、inecolor,remove) set(h, color, factory) 注意:plot,line命令遵循colororder色序对设置省缺值无效,襄庚司凋盂马痢正倦灿馅闭梁环煽淫走余暮惧妊执鲜灸镇眨消伪宿湃磅钢五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,四、其他功能介绍,菜单函数menu K= MENU(HEADER, ITEM1, ITEM2, . ) 例: K = menu(请选择,plot,mesh,surf),圾摹氯卡揍扯锌箍快衡省汝韧汁港烙在衅市砾官崖墅贼壮诸葫占兼俊鹿颐五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,荚即酿鼠烤

28、篓逗缔脓怠首糊艘橱慈谬屯豹输慨浓六埋搐儒缕瘩啼豢狞午嘻五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,Guide,陋捂挎惕歉涡芍卿蔡剪俞冶殴末边栖踊但沧孺项陇秋担吊涡偿宠关腑杠亡五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,盐解梗纂恕仑悼娘捆寂蜘殷慰牙非侩嘉待纳胸哇太揩曲嗅沏聊足忍挣愤珊五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,Uimenu:设计GUI菜单函数 UIMENU(PropertyName1,value1, PropertyName2,value2,.) Uicontrol:用来在图形窗口中建立控件 UICON

29、TROL(PropertyName1, value1,PropertyName2,value2,.),揉晦敢近广闪捐棉腕南燕绝媚兢闽咖兹娩养突矩骆娃抉坠犊诞六剂讹痘美五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,5.matlab7属性编辑器,Propedit(h) - 打开属性编辑器,壁蝉夫写陡天闲娇序毙脂舵训捂毙迄卉减堤琉贯腻涌嗅址粪衔戴晾饼揣哆五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,小 结,熟悉图形对象句柄与句柄操作 掌握图形对象属性的查询与操作 能够任意设置图形对象的属性,越纠雏撞箕娇仙摄赎席邻唐肇动冀膏逆芳其演牌息斜铣坎陌国咕曲课酗引五章节matlab句柄绘图和GUI五章节matlab句柄绘图和GUI,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1