当前位置:文档之家› 第六章句柄图形和用户图形界面设计

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

仅可以产生更为复杂的图形,而且为动
态图形提供了基础。这个系统称为句柄
图形系统。
2019/4/2 2
高层绘图函数——是对整个图形进行操作的,图形每一 部分的属性都是按缺省方式设置的。充分体现了MATLAB语 言的实用性。 在高层绘图中对图形对象的描述一般是缺省的或由高层 绘图函数自动设置的,因此对用户来说几乎是不透明的。
图像 光源 三维块 矩形块
Axes
2019/4/2
4
句柄图形:利用底层绘图函数,通过对对象
属性的设置(Handle Graphics)与操作实现 绘图。
句柄图形中所有图形操作都是针对图形对象
而言的。
句柄图形充分体现了面向对象的程序设计。
2019/4/2
5
句柄图形的特点
句柄图形可以随意改变MATLAB生成图形的
根据轴是线对象的父代,可查轴的句柄
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])
底层绘图函数——可以定制图形,对图形的每一部分进
行控制,用户可以用来开发用户界面以及各专业的专用图形。 充分体现了MATLAB语言的开发性
2019/4/2
3
6.1.1句柄图形的层次关系
右键菜单 右键菜单 线对象 菜单 文字 表面图
根对象
Root screen
图形窗口对象
figures
界面控件
坐标轴
例:创建一个线对象并返回线对象的句柄值 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]
一的句柄 变量h是句柄值——浮点数
2019/4/2 15
图形对象属性的获得与设置
要设置图形对象属性值,首先要知道该对象的句柄,基 本方法有以下几种。 从图形创建指令获取
追溯法获取句柄
当前对象句柄的获取
根据对象特性获取句柄
根据对象”浑名“(tag)获取
2019/4/2
16
1.从图形创建 句柄 所有高层或底层指令都能从图形创建时获取句柄。 H_gc=graphic Ccommand 2. 追溯法获取句柄

2019/4/2 9
image 显示图象 h=image(x); x为图像矩阵 text 标注文字 h=text(x,y,’string’)
确定标注位置
适当的父辈对象中。
但句柄绘图中上述图形对象都是用户需要经常使用的, 所以要作到心中有数,用句柄设置图形对象的属性。
2019/4/2 10
2019/4/2 34
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颜色矩阵。
set(h)
set(h,’propertyname’,value) set(h,’属性名称’,‘新属性’) ‘color’, ‘linestyle’, ’:’ ’r’
‘figurecolor’, ’m’
2019/4/2 30
2.对象属性的继承操作
对象属性的继承操作是通过父代对象,设置缺省对
象属性来实现的。
第六章 句柄图形和用户图形界面设计
教学目标
介绍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)创建线对象的同时也建立了一个唯
图形窗口对象本身是一个窗口,具有一般窗口对象的共
同属性。其常用属性如下: Color、MenuBar、Name、NumberTitle、Unites、Position、 Resize。
2019/4/2 11
1.Color属性 图形背景颜色。RGB: [0 0 0]黑色,[1 1 1]白色 2.MenuBar属性 是否在图形窗口的顶部显示图形菜单栏。None缺省设置
Callback:在对象被选中时执行的回调函数; ButtonDownFcn:按下界面上按钮所执行的函数; KeyPressFcn:在键盘按下时执行的函数; WindowButtonDownFcn:在图形是窗口中移动鼠标时调用的 函数。
2019/4/2
13
6.1.3句柄与句柄获取
什么是句柄?
句柄(handle)是图形对象的标识代码,标识代码含 有图形对象的各种必要的属性信息。
※ 控制一个图形对象是通过句柄实现的,具体是通过
句柄操作函数get,set将某对象句柄属性作设置与 修改。
1.
对象属性的直接操作
对象属性的直接操作是通过当前句柄来
实现的,所以首先要获得当前句柄值以及
对象的属性,然后再查询或修改。
2019/4/2 29
get(h) getLineColor —— 线的颜色
※缺省值的获得与设置也是由get,set函数实 现的
2019/4/2 32
例:
get(0,'DefaultFigureColor') —— 获得图形 窗口的缺省值 set(h,'DefaultLineColor','r') ——设置线的 颜色为红色 例:在图上添加文字注释,颜色为红色 set(gca,'DefaultTextColor',[1 0 0]) gtext('正弦') gtext('余弦') 在轴对象上设置字对象的颜色缺省值为红色 继承该缺省值在图上添加红色的文字注释
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
标注字符串
每个底层函数只能创建一个图形对象,并将它们置于
6.1.2 图形窗口对象的属性
所有图形窗口都有决定其如何表现的属性,一类是共性:
包括类型、可视、剪辑及中断允许等。另一类是特性:针 对某一对象独有的如定义“面”的数据,“轴”的刻度等。 属性可以在界面编辑面板的Tools\Property Inspector菜单项 设置。
若一个对象的句柄为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 —— 线的宽度
方式。
句柄图形允许你定制图形的许多特性,无论
是对图形做一点小改动,还是影响所有图形 输出的整体改动。
句柄图形的特性高层绘图函数是无法实现的
2019/4/2 6
创建图形对象的底层函数
figure创建图形窗口
调用格式: h=figure(n) n为窗口序号
uicontrol图形界面控制
17
4.根据对象特性获取句柄
利用对象特性搜索对象句柄可以得到较高的搜索速度 H=findobj(H_ori,”PN”,”PV”) 在H_ori制定对象上,寻找与属性对(”PN”,”PV”)匹配的对象 句柄
相关主题