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 — это ручка графического объекта. Если нужны только имена свойств и допустимые значения (только для свойств радио), можно использовать 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–2022 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/v7.2.0/Introduction-to-Graphics-Structures.html