MATLAB® обеспечивает функции, которые возвращают важные указатели на объект так, чтобы можно было получить эти указатели каждый раз, когда вы требуете их.
Эти объекты включают:
Текущая фигура — Указатель фигуры, которая является текущей целью для графических команд.
Текущая система координат — Указатель осей в текущей фигуре, которая является целью для графических команд.
Текущий объект — Указатель объекта, который выбран
Объект Callback — Указатель объекта, обратный вызов которого выполняется.
Фигура обратного вызова — Указатель фигуры, которая является родительским элементом объекта обратного вызова.
Важной концепцией в графике MATLAB является концепция того, чтобы быть текущим объектом. Быть текущим означает, что объект является целью для любого действия, которое влияет на объекты того типа. Существует три объекта, определяемые как текущие в любом моменте времени:
Текущая фигура является окном, определяемым, чтобы получить вывод графических данных.
Текущая система координат является осями, в которых функции построения графика отображают графики.
Текущий объект является новым объектом, созданным или выбранным.
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
Возвращает значение свойства Root CallbackObject
. Это свойство содержит указатель объекта, обратный вызов которого выполняется. gcbo
опционально возвращает указатель фигуры, содержащей объект обратного вызова.
gcbf
Возвращает указатель фигуры, содержащей объект обратного вызова.
MATLAB сохраняет значение свойства CallbackObject
в синхронизации с обратным вызовом выполняющегося в данного момента. Если один обратный вызов прерывает выполняющийся обратный вызов, MATLAB обновляет значение свойства CallbackObject
.
При записи функций обратного вызова для CreateFcn
и DeleteFcn
, всегда используйте gcbo
, чтобы сослаться на объект обратного вызова.
Для получения дополнительной информации о записи функций обратного вызова см. Определение Обратного вызова