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
сослаться на объект коллбэка.
Для получения дополнительной информации о записи функций обратного вызова см. Определение Коллбэка