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–2023 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/v8.1.0/Introduction-to-Graphics-Structures.html