Идентификаторы специальных объектов

Получение указателей на специальные объекты

MATLAB® обеспечивает функции, которые возвращают важные указатели на объект так, чтобы можно было получить эти указатели каждый раз, когда вы требуете их.

Эти объекты включают:

  • Текущая фигура — Указатель фигуры, которая является текущей целью для графических команд.

  • Текущая система координат — Указатель осей в текущей фигуре, которая является целью для графических команд.

  • Текущий объект — Указатель объекта, который выбран

  • Объект Callback — Указатель объекта, коллбэк которого выполняется.

  • Фигура коллбэка — Указатель фигуры, которая является родительским элементом объекта коллбэка.

Текущая фигура, оси и объект

Важной концепцией в графике MATLAB является концепция того, чтобы быть текущим объектом. Быть текущим означает, что объект является целью для любого действия, которое влияет на объекты того типа. Существует три объекта, определяемые как текущие в любом моменте времени:

  • current figure является окном, определяемым, чтобы получить вывод графических данных.

  • current axes является осями, в которых функции построения графика отображают графики.

  • current object является новым объектом, созданным или выбранным.

MATLAB хранит три указателя, соответствующие этим объектам в соответствующем свойстве предка.

Эти свойства позволяют вам получить указатели этих ключевых объектов:

hRoot = groot;
hFigure = hRoot.CurrentFigure;
hAxes = hFigure.CurrentAxes;
hobj = hFigure.CurrentObject;

Функции удобства

Следующие команды являются кратким обозначением для запросов свойства.

  • gcf — Возвращает значение корневого CurrentFigure свойство или создает фигуру, если нет никакой текущей фигуры. Фигура с его HandleVisibility набор свойств к off не может стать текущей фигурой.

  • gca — Возвращает значение CurrentAxes текущей фигуры свойство или создает оси, если нет никакой текущей системы координат. Оси с его HandleVisibility набор свойств к off не может стать текущей системой координат.

  • gco — Возвращает значение CurrentObject текущей фигуры свойство.

Используйте эти команды в качестве входных параметров к функциям, которые требуют указателей на объект. Например, можно кликнуть по объекту линии и затем использовать gco задавать указатель на set команда,

set(gco,'Marker','square')

или щелкните в объекте осей установить свойство осей:

set(gca,'Color','black')

Можно получить указатели всех графических объектов в текущей системе координат (кроме скрытых указателей):

h = get(gca,'Children');

и затем определите типы объектов:

get(h,'Type')
ans = 
      'text'
      'patch'
      'surface'
      'line'

Несмотря на то, что gcf и gca обеспечьте простые способы получения получения текущей фигуры и указателей осей, они менее полезны в файлах кода. Это особенно заметно, когда ваш код является частью приложения, разделенного на уровни на MATLAB, где вы не знаете пользовательские действия, которые могут изменить эти значения.

Для получения информации о том, как препятствовать тому, чтобы пользователи получили доступ к указателям графических объектов, которые вы хотите защитить, видеть, Предотвращают доступ к фигурам и Осям.

Объект обратного вызова и фигура обратного вызова

Функции обратного вызова часто запрашивают информацию об объекте, который задает коллбэк или фигуру, которая содержит объекты, коллбэк которых выполняется. Чтобы получить указатели, эти объекты, используют эти функции удобства:

  • gcbo — Возвращает значение Корня CallbackObject свойство. Это свойство содержит указатель объекта, коллбэк которого выполняется. gcbo опционально возвращает указатель фигуры, содержащей объект коллбэка.

  • gcbf — Возвращает указатель фигуры, содержащей объект коллбэка.

MATLAB сохраняет значение CallbackObject свойство в синхронизации с коллбэком выполняющегося в данного момента. Если один коллбэк прерывает выполняющийся коллбэк, MATLAB обновляет значение CallbackObject свойство.

При записи функций обратного вызова для CreateFcn и DeleteFcn, всегда используйте gcbo сослаться на объект коллбэка.

Для получения дополнительной информации о записи функций обратного вызова см. Определение Коллбэка