第六章句柄图形和用户图形界面设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

17
4.根据对象特性获取句柄
利用对象特性搜索对象句柄可以得到较高的搜索速度 H=findobj(H_ori,”PN”,”PV”) 在H_ori制定对象上,寻找与属性对(”PN”,”PV”)匹配的对象 句柄
5.根据“浑名”(tag)获取
可以通过“tag”属性,给对象一个“浑名”,然后可以通过 “浑名”获取该对象的句柄 设置“浑名”的两个方法 创建时赋名:plot (x,y,“Tag”,‘A4’)
标注字符串
每个底层函数只能创建一个图形对象,并将它们置于
6.1.2 图形窗口对象的属性
所有图形窗口都有决定其如何表现的属性,一类是共性:
包括类型、可视、剪辑及中断允许等。另一类是特性:针 对某一对象独有的如定义“面”的数据,“轴”的刻度等。 属性可以在界面编辑面板的Tools\Property Inspector菜单项 设置。
2019/4/2 34
例:创建一个线对象并返回线对象的句柄值 h1=line([0:10],[0:10])
10
h1 = 57.0001
9
8
7
6
5
4
h1为句柄的代码值
2019/4/2
3
2
1
0
0
1
2
3
4
5
6
7
8
9
10
20
查阅线对象的属性名称和属性值
get(h1)
Color = [1 1 0]
EraseMode = normal LineStyle = LineWidth = [0.5] MarkerSize = [6]
用set完成:h=plot(x,y)
2019/4/2
set(h,“Tag”,‘A4’)
18
操作格式:
h=gcf 将当前窗口对象的句柄返回h
get(h)或get(gcf) 查阅当前窗口对象的属性
delete(gcf) 删除当前窗口的属性 例:h=line(x,y) get(h)
2019/4/2
19
Xdata = [ (1 by 11) ]
Ydata = [ (1 by 11) ] Zdata = []
2019/4/2 21
ButtonDownFcn = Children = [] Clipping = on Interruptible = no Parent = [56.0001] Type = line UserData = [] Visible = on
DefaultLineColor —— 线的颜色
※缺省值的获得与设置也是由get,set函数实 现的
2019/4/2 32
例:
get(0,'DefaultFigureColor') —— 获得图形 窗口的缺省值 set(h,'DefaultLineColor','r') ——设置线的 颜色为红色 例:在图上添加文字注释,颜色为红色 set(gca,'DefaultTextColor',[1 0 0]) gtext('正弦') gtext('余弦') 在轴对象上设置字对象的颜色缺省值为红色 继承该缺省值在图上添加红色的文字注释
若一个对象的句柄为H_know,那么可用如下格式获取其父
或其子对象句柄 H_pa=get(H_know,’parent’) 3.当前对象句柄的获取 Gcf:当前窗口对象的句柄 H_ch=get(H_know,’children’)
Gca:当前轴对象的句柄
2019/4/2
Geo:获取“被鼠标最近点击”的图形对象句柄
父代句柄属性中设置缺省值后,所有子代对象均可
以继承该属性的缺省值。
属性缺省值的描述结构为:
Dfault+对象名称+对象属性
2019/4/2
31
如:DefaultFigureColor
—— 图形窗口的颜色
DefaultAxesAspaceRatio
—— 轴的视图比率
DefaultLineLineWide —— 线的宽度
底层绘图函数——可以定制图形,对图形的每一部分进
行控制,用户可以用来开发用户界面以及各专业的专用图形。 充分体现了MATLAB语言的开发性
2019/4/2
3
6.1.1句柄图形的层次关系
右键菜单 右键菜单 线对象 菜单 文字 表面图
根对象
Root screen
图形窗口对象
figures
界面控件
坐标轴
set(h)
set(h,’propertyname’,value) set(h,’属性名称’,‘新属性’) ‘color’, ‘linestyle’, ’:’ ’r’
‘figurecolor’, ’m’
2019/4/2 30
2.对象属性的继承操作
对象属性的继承操作是通过父代对象,设置缺省对
象属性来实现的。
1 0.8 0.6
0.4
0.2
0
-0.2
-0.4
-0.6
2019/4/2
-0.8
26
0 1 2 3 4 5 6 7
-1
首先查询各对象的属性
get(gcf) · · · h=get(gcf,'children') h= 60.0004 hh=get(gca,'children') hh = 70.0004 69.0004 68.0004

2019/4/2 9
image 显示图象 h=image(x); x为图像矩阵 text 标注文字 h=text(x,y,’string’)
确定标注位置
适当的父辈对象中。
但句柄绘图中上述图形对象都是用户需要经常使用的, 所以要作到心中有数,用句柄设置图形对象的属性。
2019/4/2 10
set(h1,'color',[1 0.5 0])
10 9 8 7 6
2019/4/2
10 9 8 7 6 5
24
5
set(gcf,'color',[0.5 0.5 0.5]) set(gcf,'color',[0.5 0.6 0.8])
10
10
9
9
8
8
7
7
6
6
5
5
4
4
3
3
2
2
1
1
0 0 1 2 3 4 5 6 7 8 9 10
调用格式:
h=uicontrol(‘property’,value) property/value确定控制类型
2019/4/2 7
uimenu创建用户界面菜单
调用格式:
h=uimenu(‘property’,value)
property/value 确定菜单形式。
axes 创建轴对象
Callback:在对象被选中时执行的回调函数; ButtonDownFcn:按下界面上按钮所执行的函数; KeyPressFcn:在键盘按下时执行的函数; WindowButtonDownFcn:在图形是窗口中移动鼠标时调用的 函数。
2019/4/2
13
6.1.3句柄与句柄获取
什么是句柄?
句柄(handle)是图形对象的标识代码,标识代码含 有图形对象的各种必要的属性信息。
3.Name属性
窗口标题 4.NumberTitle属性 在图形窗口中是否加上图形编号。 5.Units属性 像素Pixels、英寸inches、厘米Centimeters 6.Position属性
2019/4/2
设置图形显示的大小的位置。
12
7.Resize属性 能否改变窗口的大小。
8.各种回调函数
一的句柄 变量h是句柄值——浮点数
2019/4/2 15
图形对象属性的获得与设置
要设置图形对象属性值,首先要知道该对象的句柄,基 本方法有以下几种。 从图形创建指令获取
追溯法获取句柄
当前对象句柄的获取
根据对象特性获取句柄
根据对象”浑名“(tag)获取
2019/4/2
16
1.从图形创建 句柄 所有高层或底层指令都能从图形创建时获取句柄。 H_gc=graphic Ccommand 2. 追溯法获取句柄
※ 控制一个图形对象是通过句柄实现的,具体是通过
句柄操作函数get,set将某对象句柄属性作设置与 修改。
1.
对象属性的直接操作
对象属性的直接操作是通过当前句柄来
实现的,所以首先要获得当前句柄值以及
对象的属性,然后再查询或修改。
2019/4/2 29
get(h) get(h,’ propertyname’)
图形窗口对象本身是一个窗口,具有一般窗口对象的共
同属性。其常用属性如下: Color、MenuBar、Name、NumberTitle、Unites、Position、 Resize。
2019/4/2 11
1.Color属性 图形背景颜色。RGB: [0 0 0]黑色,[1 1 1]白色 2.MenuBar属性 是否在图形窗口的顶部显示图形菜单栏。None缺省设置
2019/4/2 33
3.其它操作 default —— 由父代继承 factory —— 厂家设定缺省值 remove —— 清除设定缺省值
例:set(gca,'defaultlinecolor','remove') set(h,’color’,’factory’) 注意:plot,line命令遵循colororder色序对 设置缺省值无效,
仅可以产生更为复杂的图形,而且为动
态图形提供了基础。这个系统称为句柄
图形系统。
2019/4/2 2
高层绘图函数——是对整个图形进行操作的,图形每一 部分的属性都是按缺省方式设置的。充分体现了MATLAB语 言的实用性。 在高层绘图中对图形对象的描述一般是缺省的或由高层 绘图函数自动设置的,因此对用户来说几乎是不透明的。
方式。
句柄图形允许你定制图形的许多特性,无论
是对图形做一点小改动,还是影响所有图形 输出的整体改动。
句柄图形的特性高层绘图函数是无法实现的
2019/4/2 6
创建图形对象的底层函数
figure创建图形窗口
调用格式: h=figure(n) n为窗口序号
uicontrol图形界面控制
2019/4/2 27
y11=get(hh(2),'ydata'); y22=y11/2; set(hh(2),'ydata',y22) set(hh(3),'linestyle',':')
1 0.8 0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
1
2
3
4
5
6
7
2019/4/2
28
6.2 对象的属性操作
0
0
1
2
3
4
5
6
7
8
9
10
2019/4/2
25
例:作正弦、余弦曲线,将正弦曲线改为
虚线,将余弦曲线幅度减为1/2高度,如何 用句柄实现。 x=0:2*pi/180:2*pi; y1=sin(x);y2=cos(x); plot(x,y1,x,y2,x,zeros(size(x) ),'w:')
图像 光源 三维块 矩形块
Axes
2019/4/2
4
句柄图形:利用底层绘图函数,通过对对象
属性的设置(Handle Graphics)与操作实现 绘图。
句柄图形中所有图形操作都是针对图形对象
而言的。
句柄图形充分体现了面向对象的程序设计。
2019/4/2
5
句柄图形的特点
句柄图形可以随意改变MATLAB生成图形的
第六章 句柄图形和用户图形界面设计
教学目标
介绍MATLAB的句柄图形和GUI开发环境、开
发实例
学习要求
理解用户图形界面程序的构造,掌握编程方法
2019/4/2
1
6.1 句柄图形
MATLAB提供了一组用于创建及操作
线、面、文字和像等基本图形对象的低
级函数,这组命令可以对各图形对象进
行更为细致的修饰和控制,低级函数不
各图形对象的句柄数据格式:
根屏幕 图形窗口 其它对象
2019/4/2
0 整数,表示图形窗口数 对应的符点数
14
所有能创建图形对象的MATLAB函数都可给出所创建
图形对象的句柄
例:创建1号窗口,返回句柄
h=figure(1)
h=1 返回值为窗口号数
例:h=line(1:6,1:6)创建线对象的同时也建立了一个唯
根据轴是线对象的父代,可查轴的句柄
get(gca)
2019/4/2 22
可查色序
get(gca,'colororder')
ans = 1 1 0 1 0 1 0 1 1
1
0
0
1
0
0
0
2019/4/2
0
1
23源自文库
set: 改变图形对象的属性
设置线条和窗口的颜色
set(h1,'color',[1 0 0])
left, bottom h=axes(‘property’, width,height )
定义轴对象的位置与大小
2019/4/2 8
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颜色矩阵。
相关文档
最新文档