图形函数使用类为 graphics_handle 的指针来寻址控制视觉显示的数据结构。一个 graphics 句柄可以指向许多不同的基本对象类型中的任何一个。这些对象本身就是图形数据结构。基本图形对象类型包括:figure、axes、line、text、patch、scatter、surface、image 和 light。
这些对象中的每一个都有一个同名的函数,并且每个函数都返回一个指向相应类型对象的图形句柄。
此外,还有几个函数对图形对象的属性进行操作,这些函数也返回句柄。这包括但不限于以下函数:plot 和 plot3 返回指向类型为 line 的对象的句柄。函数 subplot 返回指向类型为 axes 的对象的句柄。函数 fill、fill3、trimesh 和 trisurf 返回指向类型为 patch 的对象的句柄。函数 scatter3 返回指向类型为 scatter 的对象的句柄。函数 slice、surf、surfl、mesh、meshz、pcolor 和 waterfall 每个都返回类型为 surface 的句柄。函数 camlight 返回指向类型为 light 的对象的句柄。函数 area、bar、barh、contour、contourf、contour3、surfc、meshc、errorbar、quiver、quiver3、stair、stem 和 stem3 每个都返回一个指向复杂数据结构的句柄,如 Data Sources 中所述。
图形对象按层次结构排列:
1. 根对象由 groot 返回(历史上相当于句柄 0)。换句话说,get (groot) 返回根对象的属性。
2. 根对象之下是 figure 对象。
3. figure 对象之下是 axes 或 hggroup 对象。
4. axes 或 hggroup 对象之下是 line、text、patch、scatter、surface、image 和 light 对象。
可以通过查询图形对象的 "parent" 和 "children" 属性来遍历这个层次结构树。
可以通过函数 ishghandle 将图形句柄与函数句柄区分开来(参见 函数句柄)。如果其参数是图形对象的句柄,则 ishghandle 返回 true。此外,可以使用 isfigure 或 isaxes 分别测试 figure 或 axes 对象。要测试特定类型的图形句柄,例如 patch 或 line 对象,请使用 isgraphics。更具体的测试函数只有当参数既是图形句柄又是正确类型(figure、axes、指定的对象类型)时才返回 true。
get 和 set 命令用于获取和设置图形对象的属性值。此外,get 命令也可用于获取属性名称。
例如,可以通过以下方式显示由图形句柄 h 指向的图形对象的 "type" 属性:
get (h, "type")
可以使用 s = get (h) 以结构体的形式获取属性及其当前值,其中 h 是图形对象的句柄。如果只需要属性的名称和允许的值(仅适用于单选属性),可以使用 set (h)。
例如:
h = figure ();
get (h, "type")
⇒ ans = figure
set (h)
⇒
alphamap:
beingdeleted: [ {off} | on ]
busyaction: [ cancel | {queue} ]
buttondownfcn:
clipping: [ off | {on} ]
closerequestfcn:
color:
colormap:
createfcn:
currentaxes:
deletefcn:
dockcontrols: [ {off} | on ]
filename:
graphicssmoothing: [ off | {on} ]
handlevisibility: [ callback | off | {on} ]
...
get 和 set 的用法在 get 和 set 中进一步解释。
版权所有 © 2024-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2