15.3.1图形结构体简介

图形函数使用类为graphics_handle的指针来寻址控制视觉显示的数据结构。Agraphics句柄可以指向许多不同的基本对象类型中的任何一个。这些对象本身就是图形数据结构。基本图形对象类型为:figure, axes, line,text, patch, scatter, surface, text,imagelight.

这些对象中的每一个都有一个同名的函数,并且每个函数都返回一个指向相应类型的对象的图形句柄。

此外,还有几个函数对图形对象的属性进行操作,还返回句柄。这包括但不限于以下函数:plotplot3返回指向类型为的对象的句柄line.函数subplot返回指向类型为的对象的句柄axes.函数fill, fill3, trimeshtrisurf返回一个指向patch类型对象的句柄。函数scatter3返回类型为scatter的对象的句柄。函数slice, surf, surfl, mesh, meshz,pcolorwaterfall每个返回类型surface的句柄。The functioncamlight将句柄返回到类型为light的对象。这些函数area, bar, barh, contour,contourf, contour3, surfc, meshc, errorbar,quiver, quiver3, stair, stem, stem3each返回一个复杂数据结构的句柄,如中所述Data Sources.

图形对象按层次排列:

1.根对象从返回groot(历史上,相当于句柄0)。换句话说,get (groot)返回根对象的属性。

2.根部以下是figure物体。

3.下面figure对象是axeshggroup物体。

4.下方axeshggroup对象是line,text, patch, scatter, surface, imagelight物体。

可以通过查询"parent""children"图形对象的属性。

图形句柄可以与函数句柄区分开来(详见函数句柄)通过函数ishghandle. ishghandle如果其参数是图形对象的句柄,则返回true。此外,可以使用isfigureisaxes分别地要测试特定类型的图形句柄,如补丁或线对象,请使用isgraphics。只有当参数既是图形句柄又是正确类型(图形、轴、指定的对象类型)时,更具体的测试函数才会返回true。

这个getset命令用于获取和设置图形对象的属性值。此外get命令可用于获取属性名称。

例如,属性"type"可以通过以下方式显示图形句柄h所指向的图形对象的:

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} ]
        ...

的用途getset在中进一步解释get, set.

 
: res = isprop (obj, "prop")

如果返回trueprop是对象的属性obj.

obj也可以是对象的数组,在这种情况下res将是指示每个句柄是否具有属性的alogical数组prop.

为了绘图,obj是图形对象的句柄。否则obj应该是类的实例。isprop返回类是否定义了属性,但是Access权限或可见性限制(Hidden = true)可能会阻止程序员使用。

详见: get, set, properties, ismethod, isobject.

广告

版权所有 © 2024-2025 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2