Spec-Zone.ru › Octave 9

15.3.1 Введение в графические структуры

Графические функции используют указатели класса graphics_handle для обращения к структурам данных, управляющим визуальным отображением. Графический дескриптор может указывать на один из нескольких различных базовых типов объектов. Эти объекты и являются графическими структурами данных. К примитивным типам графических объектов относятся: figure, axes, line, text, patch, scatter, surface, text, 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 каждая возвращают дескриптор сложной структуры данных, описанной в разделе Источники данных.

Графические объекты организованы в иерархию:

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, если ее аргумент является дескриптором графического объекта. Кроме того, тип объекта figure или axes можно проверить с помощью isfigure или isaxes соответственно. Чтобы проверить, относится ли графический дескриптор к определенному типу, например к объекту patch или line, используйте isgraphics. Более конкретные проверочные функции возвращают true только в том случае, если аргумент является графическим дескриптором и имеет соответствующий тип (figure, axes или указанный тип объекта).

Команды get и set используются для получения и задания значений свойств графических объектов. Кроме того, команду get можно использовать для получения имен свойств.

Например, свойство "type" графического объекта, на который указывает графический дескриптор h, можно вывести так:

get (h, "type")

Свойства и их текущие значения можно получить в виде структуры с помощью s = get (h), где h — дескриптор графического объекта. Если нужны только имена свойств и допустимые значения (только для свойств типа radio), можно использовать 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.

: res = isprop (obj, "prop")

Возвращает true, если prop является свойством объекта obj.

obj также может быть массивом объектов; в этом случае res будет логическим массивом, указывающим, имеет ли каждый дескриптор свойство prop.

При построении графиков obj является дескриптором графического объекта. В противном случае obj должен быть экземпляром класса. isprop сообщает, определяет ли класс свойство, однако ограничения Access или ограничения видимости (Hidden = true) могут помешать программисту использовать это свойство.

См. также: get, set, properties, ismethod, isobject.

© 1996–2026 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.4.0/Introduction-to-Graphics-Structures.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API