Figure Properties

Управляйте внешним видом и поведением окна рисунка

Свойства, перечисленные здесь, допустимы для фигур, используемых в GUIDE или фигурах, созданных с функцией figure. Для фигур, созданных с функцией uifigure, смотрите UI Figure Properties.

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

Начиная с R2014b, вы можете использовать запись через точку для того, чтобы запросить и задать свойства.

f = figure;
u = f.Units;
f.Units = 'inches';

Если вы используете более раннюю версию, используйте вместо этого функции get и set.

Внешний вид окна

развернуть все

Изобразите отображение панели меню, заданное как 'figure' или 'none'. Свойство MenuBar позволяет вам отобразить или скрыть меню по умолчанию наверху окна рисунка. Задайте 'figure', чтобы отобразить панель меню. Задайте 'none', чтобы скрыть его.

Это свойство влияет только на меню по умолчанию и не влияет на меню, заданные с командой uimenu.

Панели меню не кажутся в цифрах, чье свойство WindowStyle установлено в 'Modal'. Если фигура, содержащая uimenu дочерние элементы, изменяется на 'Modal', uimenu дочерние элементы все еще существуют в свойстве Children фигуры. Однако uimenus не отображаются, в то время как WindowStyle установлен в 'Modal'.

Примечание

Если вы не хотите отображать меню по умолчанию в фигуре, то установленный это свойство в 'none', когда вы создаете фигуру.

Изобразите отображение панели инструментов, заданное как одно из следующего:

  • 'auto' Использует то же значение в качестве свойства MenuBar.

  • фигура Отображения панели инструментов.

  • 'none' Панель инструментов не отображается.

Это свойство влияет только на панель инструментов по умолчанию. Это не влияет на другие панели инструментов такой как, Панель инструментов Редактирования Панели инструментов или Графика Камеры. Выбор Figure Toolbar от фигуры меню View устанавливает это свойство на 'figure'.

Панели инструментов не кажутся в цифрах, чье свойство WindowStyle установлено в 'Modal'. Если фигура, содержащая панель инструментов, изменяется на 'Modal', дочерние элементы панели инструментов все еще существуют в свойстве Children фигуры. Однако панель инструментов не отображается, в то время как WindowStyle установлен в 'Modal'.

Примечание

Если вы хотите скрыть панель инструментов по умолчанию, то установленный это свойство в 'none', когда вы создаете фигуру.

Интерактивная фигура, прикрепляющаяся, заданный как одно из следующего:

  • 'on' — Фигура может быть прикреплена в рабочем столе MATLAB®. Пункт меню Desktop> Dock Figure и кнопка Dock Figure в панели меню включены.

  • 'off' MATLAB отключает пункт меню Desktop> Dock Figure и не отображает кнопку прикрепления фигуры.

    Вы не можете установить свойство DockControls на 'off', если WindowStyle установлен в 'docked'.

Установка свойства DockControls не поддержана в MATLAB Online™.

Цвет фона, заданный как триплет RGB, шестнадцатеричный цветовой код, название цвета или краткое название. Если вы задаете 'none', цвет фона кажется черным на экране, но если вы распечатываете фигуру, фоновая печать, как будто окно рисунка прозрачно.

Для пользовательского цвета задайте триплет RGB или шестнадцатеричный цветовой код.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должны быть в диапазоне [0,1]; например, [0,4 0,6 0,7].

  • Шестнадцатеричный цветовой код является вектором символов или скаляром строки, который запускается с символа хеша (#), сопровождаемый тремя или шестью шестнадцатеричными цифрами, которые могут колебаться от 0 до F. Значения не являются чувствительными к регистру. Таким образом цветовые коды '#FF8800', '#ff8800', '#F80' и '#f80' эквивалентны.

Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое названиеТриплет RGBШестнадцатеричный цветовой кодВнешний вид
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию использованием MATLAB во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешний вид
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Типы данных: double | char

Стиль окна, заданный как одно из следующего:

  • 'normal' — Окно рисунка независимо от других окон, и другие окна доступны, в то время как фигура отображается.

  • 'modal' — Фигура отображается сверху всех существующих окон рисунка, делая их недоступными, пока главная фигура существует и остается модальной. Однако любые последние данные, созданные после модальной фигуры, отобразятся.

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

  • 'docked' — Фигура отображается в рабочем столе или окне документа. Когда свойство WindowStyle установлено в 'docked', вы не можете установить свойство DockControls на 'off'. Опция 'docked' не поддержана в MATLAB Online.

Примечание

Это некоторые важные характеристики свойства WindowStyle и некоторые рекомендуемые лучшые практики:

  • Когда вы создаете окна UI, всегда задаете свойство WindowStyle. Если вы также хотите установить Resize, Position или свойства OuterPosition фигуры, то установленный свойство WindowStyle сначала.

  • Можно изменить свойство WindowStyle фигуры в любое время, включая то, когда фигура видима и содержит дочерние элементы. Однако в некоторых системах, устанавливая это свойство может заставить фигуру высвечиваться или исчезать и вновь появляться, в зависимости от реализации системы нормальных и модальных окон. Для лучших визуальных результатов, устанавливает свойство WindowStyle во время создания или когда фигура невидима.

  • Вызов reset на фигуре не изменяет значение свойства WindowStyle.

Модальное поведение стиля окна

Когда WindowStyle установлен в 'modal', окно рисунка захватывает всю клавиатуру и действия мыши по всем окнам MATLAB, пока окна видимы. Windows, принадлежащий приложениям кроме MATLAB, незатронут.

Ввод Ctrl+C, когда модальная фигура фокусируется причины, которые фигурируют, чтобы вернуться к установке свойства 'normal' WindowStyle. Это позволяет пользователю вводить в командной строке.

Фигуры с набором свойств WindowStyle к 'modal' и набором свойств Visible к 'off' не ведут себя модально, пока MATLAB не делает их видимыми. Поэтому можно скрыть модальное окно для более позднего повторного использования, вместо того, чтобы уничтожить его.

Модальные фигуры не делают дочерних элементов меню отображения, встроенных меню или панелей инструментов. Но, это не ошибка создать меню в модальной фигуре или изменить настройки свойства WindowStyle к 'modal' на фигуре с дочерними элементами меню. Объекты Menu существуют, и фигура сохраняет их. Если вы сбрасываете свойство WindowStyle фигуры к 'normal', отображению меню.

Статус окна, заданный как одно из этих значений:

  • 'normal' — Окно отображается в нормальном состоянии.

  • 'minimized' — Окно сворачивается, но можно все еще выполнить команды, чтобы получить или установить его свойства, добавить дочерние элементы или создать графики в окне.

  • 'maximized' — Окно заполняет экран. Минимизирование, восстановление и близкие кнопки, обеспеченные операционной системой, появляются в углу окна. Если окно имеет меню и панели инструментов на нормальном состоянии, они присутствуют в этом состоянии.

  • 'fullscreen' — Окно заполняет экран. Однако минимизирование, восстановление и близкие кнопки, обеспеченные операционной системой, скрыты. Если окно имеет меню и панели инструментов на нормальном состоянии, они присутствуют в этом состоянии.

При нажатии на минимизирование максимизируйте, или кнопка восстановления, обеспеченная операционной системой, устанавливает свойство WindowState соответственно. Нажатие Ctrl+F11 (Windows® и Linux®) или Ctrl+Command+f (Mac OS) переключает состояние 'fullscreen'.

Установка свойства WindowState на прикрепленной фигуре или в MATLAB Online не поддержана.

Положение

развернуть все

Местоположение и размер области векторной и растровой графики, заданной как вектор формы [left bottom width height]. Эта область исключает границы фигуры, строку заголовка, панель меню и панели инструментов.

Эта таблица описывает каждый элемент в векторе Position.

ЭлементОписание
leftРасстояние от левого края главного дисплея к внутреннему левому краю окна. Это значение может быть отрицательным в системах, которые имеют больше чем один монитор.

Если фигура прикрепляется, то это значение относительно панели фигуры в рабочем столе MATLAB.
bottomРасстояние от базового края главного дисплея к внутреннему базовому краю окна. Это значение может быть отрицательным в системах, которые имеют больше чем один монитор.

Если фигура прикрепляется, то это значение относительно панели фигуры в рабочем столе MATLAB.
widthРасстояние между правыми и левыми внутренними краями фигуры.
heightРасстояние между верхними и нижними внутренними краями окна.

Все измерения указаны в единицах, заданных свойством Units.

Вы не можете задать фигуру свойство Position, когда фигура прикрепляется.

В MATLAB Online проигнорированы bottom и элементы left вектора Position.

Чтобы поместить полное окно, включая границы, строку заголовка, панель меню, панели инструментов, использует свойство OuterPosition.

Примечание

Операционная система Windows осуществляет минимальную ширину окна и максимальный размер окна. Если вы зададите размер фигуры за пределами тех пределов, отображенная фигура будет соответствовать пределам вместо размера, который вы задали.

Модули измерения, заданного как одно из значений из этой таблицы.

Модульное значениеОписание
'pixels' (значение по умолчанию)

'pixels'.

Начиная в R2015b, расстояния в пикселях независимы от вашего системного разрешения по системам Макинтоша и Windows:

  • В системах Windows пиксель составляет 1/72 дюйма.

  • В системах Macintosh пиксель составляет 1/72 дюйма.

В системах Linux размер пикселя определяется вашим системным разрешением.

'normalized'Эти модули нормированы относительно родительского контейнера. Нижний левый угол контейнера сопоставляет с (0,0), и верхний правый угол сопоставляет с (1,1).
'inches''inches'.
'centimeters''centimeters'.
'points''points'. Одна точка равняется 1/72-й из дюйма.
'characters'

Эти модули основаны на шрифте uicontrol по умолчанию графического корневого объекта:

  • Ширина символов = ширина буквы x.

  • Высота символа = расстояние между базовыми линиями двух строк текста.

Чтобы получить доступ к шрифту uicontrol по умолчанию, используйте get(groot,'defaultuicontrolFontName') или set(groot,'defaultuicontrolFontName').

MATLAB измеряет все модули от левого нижнего угла родительского объекта.

Это свойство влияет на свойство Position. Если вы изменяете свойство Units, полагаете, что возвращение его значения к значению по умолчанию после завершения вашего вычисления старается не влиять на другие функции, которые принимают значение по умолчанию.

Порядок, в котором вы задаете свойства Units и Position, имеет эти эффекты:

  • Если вы задаете Units перед свойством Position, то MATLAB устанавливает Position с помощью модулей, которые вы задаете.

  • Если вы задаете свойство Units после того, как свойство Position, MATLAB установит положение с помощью Units по умолчанию. Затем MATLAB преобразовывает значение Position в эквивалентную стоимость в модулях, которые вы задаете.

Местоположение и размер области векторной и растровой графики, заданной как вектор формы [left bottom width height]. Эта область исключает границы фигуры, строку заголовка, панель меню и панели инструментов. Все измерения указаны в единицах, заданных свойством Units.

Это значение свойства идентично значению свойства Position.

Местоположение и размер внешних границ, заданных как вектор формы [left bottom width height]. Это свойство задает область, заключенную внешними границами фигуры (который включает границы, строку заголовка, панель меню и панели инструментов).

В этой таблице описываются каждый элемент в векторе.

ЭлементОписание
leftРасстояние от левого края главного дисплея к внешнему левому краю окна рисунка. Это значение может быть отрицательным в системах, которые имеют больше чем один монитор.

Если фигура прикрепляется, то это значение относительно панели фигуры в рабочем столе MATLAB.
bottomРасстояние от базового края главного дисплея к внешнему базовому краю окна рисунка. Это значение может быть отрицательным в системах, которые имеют больше чем один монитор.

Если фигура прикрепляется, то это значение относительно панели фигуры в рабочем столе MATLAB.
widthРасстояние между правыми и левыми внешними краями фигуры.
heightРасстояние между верхними и нижними внешними краями фигуры.

Все измерения указаны в единицах, заданных свойством Units.

Вы не можете задать фигуру свойство OuterPosition, когда фигура прикрепляется.

Примечание

Операционная система Windows осуществляет минимальную ширину окна и максимальный размер окна. Если вы зададите размер фигуры за пределами тех пределов, отображенная фигура будет соответствовать пределам вместо размера, который вы задали.

Это свойство не имеет никакого эффекта на фигуры.

Фигура изменяемого размера, заданная как 'on' или 'off'. Когда это свойство установлено в 'on', фигура изменяемого размера. В противном случае это не изменяемого размера.

Графический вывод

развернуть все

Карта цветов для содержимого осей фигуры, заданной как m-by-3 массив RGB (красный, зеленый, синий) триплеты, которые задают отдельные цвета m.

Пример: figure('Colormap',[1 0 1; 0 0 1; 1 1 0]) устанавливает карту цветов на три цвета: пурпурный, синий цвет, и желтый.

MATLAB получает доступ к этим цветам их номером строки.

Карты цветов влияют на рендеринг объектов, созданных с surface, image и функциями patch, но обычно не влияют на другие графические объекты.

Когда вы устанавливаете свойство Colormap фигуры, затем оси и графики в фигуре используют ту же палитру.

Карта прозрачности для содержимого Axes, заданного как массив конечных альфа-значений, которые прогрессируют линейно от 0 до 1. Размер массива может быть m-1 или 1 m. Альфа-значения доступов MATLAB их индексом в массиве. Alphamaps может быть любой длиной.

Alphamaps влияют на рендеринг объектов, созданных с surface, image и функциями patch, но не влияют на другие графические объекты.

Когда вы устанавливаете свойство Alphamap фигуры, затем оси и графики в фигуре используют ту же альфа-карту.

Директива по тому, как добавить следующий график, заданный как 'add', 'new', 'replace' или 'replacechildren'.

Эта таблица описывает эффекты каждого значения.

Значение свойстваЭффект
'new'

Создает новую фигуру и использует его в качестве текущей фигуры.

'add'

Добавляют новые графические объекты, не очищаясь или сбрасывая текущую фигуру.

'replacechildren'

Удаляет все объекты осей, кто не скрыт прежде, чем добавить новые объекты. Не сбрасывает свойства фигуры.

Эквивалентный использованию команды clf.

'replace'

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

Эквивалентный использованию команды reset clf.

Рассмотрите использование функции newplot, чтобы обработать свойство NextPlot. Для получения дополнительной информации смотрите свойство NextPlot осей и Подготовьте фигуры и Оси для Графиков.

Средство отображения для отображения на экране и печати, заданной как одно из этих значений:

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

  • 'painters' — Средство отображения живописцев. Эта опция работает хорошо на оси в 2D представлении. В 2D, графических объектах видов средства отображения Живописцев согласно дочернему порядку (заданный порядок). В 3-D виды средства отображения Живописцев возражают впереди против невыполненного заказа. Однако это не может правильно чертить пересекающиеся полигоны в 3-D.

Примечание

Опция 'zbuffer' была удалена. Используйте 'opengl' или 'painters' вместо этого.

Установка свойства Renderer не поддержана в MATLAB Online.

Аппаратные и программные реализации OpenGL

OpenGL доступен на всех компьютерах, которые запускают MATLAB, поскольку версия программного обеспечения OpenGL создается - в MATLAB. Однако, если у вас есть аппаратное обеспечение машинной графики, которое поддерживает аппаратно ускоренную версию OpenGL, затем MATLAB автоматически использует аппаратно ускоренную версию, чтобы увеличить производительность.

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

MATLAB выдает предупреждение, если он не может найти применимую библиотеку OpenGL.

Программное обеспечение выбор OpenGL

Чтобы переключиться от оборудования до программного обеспечения OpenGL, сделайте следующее:

  • В системах Linux запустите MATLAB с команды matlab -softwareopengl.

  • В системах Windows выполните команду opengl software в MATLAB или запустите MATLAB с команды matlab -softwareopengl.

  • В системах Macintosh не поддержано программное обеспечение OpenGL.

Следующие версии программного обеспечения доступны:

  • В системах Linux MATLAB использует реализацию программного обеспечения OpenGL, который включен в распределение MATLAB.

  • На Windows OpenGL доступен как часть операционной системы. Если вы испытываете проблемы с OpenGL, свяжитесь со своим поставщиком графического драйвера, чтобы получить последнюю квалифицированную версию OpenGL.

  • В системах Macintosh программное обеспечение OpenGL не доступно.

Определение версии библиотеки OpenGL

Чтобы определить версию и поставщика библиотеки OpenGL, которой MATLAB пользуется в вашей системе, вызовите функцию rendererinfo. Например, эта команда получает информацию для текущей системы координат и хранит ее в структуре под названием info.

info = rendererinfo(gca)

Эта структура также обеспечивает имя графического средства отображения в поле GraphicsRenderer. Например, если MATLAB использует, аппаратно ускорил OpenGL, поле возвращает 'OpenGL Hardware'. Если MATLAB использует программное обеспечение OpenGL, поле возвращает 'OpenGL Software'.

Потерянная связь XServer

При использовании Linux, если существует перерыв в связи с XServer, MATLAB может отказать с нарушением сегментации. Если это происходит, гарантируйте, что системе установили последний XServer.

В системе Linux также можно попытаться обновить драйвер OpenGL или запустить MATLAB с программного обеспечения OpenGL с помощью этой команды:

 matlab -softwareopengl

Выбор средства отображения, заданный как:

  • 'auto' MATLAB выбирает метод рендеринга для печати и отображения на экране на основе размера и сложности графических объектов в фигуре.

  • 'manual' — MATLAB использует средство отображения, заданное со свойством Renderer.

MATLAB устанавливает свойство RendererMode на 'manual', если вы явным образом устанавливаете свойство Renderer на 'painters' или 'opengl'.

Сглаживание графики осей, заданное как 'on' или 'off'. Сглаживание уменьшает внешний вид зубчатых строк в графические оси. MATLAB применяет метод сглаживания к графические оси (и линейки осей), если GraphicsSmoothing установлен в 'on', и любое из этих условий верно:

  • Свойство Renderer установлено в 'painters'.

  • Свойство Renderer установлено в 'opengl', и ваша аппаратная карта поддерживает OpenGL.

Если ваши графические оси содержат в основном вертикальные или горизонтальные строки, рассмотрите установку свойства GraphicsSmoothing к 'on' и строке или свойства AlignVertexCenters строк к 'on'. Метод сглаживания жертвует некоторой резкостью за гладкость, которая может быть особенно примечательной в такой графике.

Примечание

Графическое сглаживание не имеет никаких, влияют на тексте. MATLAB сглаживает текст независимо от значения свойства GraphicsSmoothing.

Установка свойства GraphicsSmoothing не поддержана в MATLAB Online.

Печать и экспорт

развернуть все

Размер фигуры и местоположение на странице при печати или сохранении, заданный как четырехэлементный вектор формы [left bottom width height].

  • left и значения bottom — Управление расстояние от левого нижнего угла страницы к левому нижнему углу фигуры. Эти значения проигнорированы при сохранении фигуры в формат нестраницы, такой как формат EPS или PNG.

  • width и значения height — Управление размер фигуры. Если значения ширины и высоты являются слишком большими, то фигура не может достигнуть заданного размера. Если фигура не достигает определенного размера, то любые компоненты пользовательского интерфейса на фигуре, такие как uicontrol или uitable, не могут сохранить или распечатать как ожидалось.

Свойство PaperUnits определяет модули измерения значений PaperPosition. Рассмотрите установку свойства PaperUnits к 'normalized'. Эта установка позволяет MATLAB автоматически измерить фигуру, чтобы занять ту же относительную сумму печатной страницы, независимо от размера страницы.

Пример: figure('PaperPosition',[.25 .25 8 6]) установил размер фигуры и местоположение для печати к [.25 .25 8 6].

Директива, чтобы использовать отображенный размер фигуры при печати или сохранении, заданный или как 'auto' или как 'manual'.

  • 'auto' Распечатанный или сохраненный размер фигуры совпадает с отображенным размером фигуры. width и значения height свойства PaperPosition равняются размеру фигуры на отображении. left и значения bottom сосредотачивают фигуру. Если размер фигуры изменяется на отображении, свойство PaperPosition автоматически обновляет к соответствующему размеру и значениям местоположения.

  • 'manual' — Распечатанный или сохраненный размер фигуры не может совпадать с отображенным размером фигуры. Используйте эту опцию, если вы хотите распечатать или сохранить фигуру, использующую размер, который отличается от отображения, или если вы не хотите фигуры, сосредоточенной на печатной или сохраненной странице. Установите свойство PaperPosition на желаемый размер и местоположение. Если размер фигуры изменяется на отображении, свойство PaperPosition автоматически не обновляет.

Чтобы сгенерировать вывод, который имеет тот же размер и разрешение (DPI) как отображенная фигура, устанавливает свойство PaperPositionMode фигуры к 'auto' и сохраняют фигуру, использующую print с опцией -r0. Опция -r0 гарантирует, что выходное разрешение совпадает с разрешением дисплея. Если разрешения отличаются, то сгенерированный выходной размер совпадает с отображенным размером фигуры в измеренных модулях (дюймы, сантиметры, точки), но не в пикселях. Например, если разрешение дисплея является 100 DPI, то 4 5 фигура дюйма является 400 500 пикселями. Если выходное разрешение является 200 DPI, то печатная или сохраненная фигура одного размера в дюймах, но 800 1000 пикселях.

Примечание

Начиная в R2016a, значением по умолчанию является 'auto'. Ранее значением по умолчанию был 'manual'.

Чтобы изменить значение по умолчанию, используйте один из этих методов.

  • Установите настройку печати. Настройки печати сохраняются через сеансы работы с MATLAB. Можно установить настройку печати или на 'auto' или на 'manual', например:

    matlab.graphics.internal.setPrintPreferences('DefaultPaperPositionMode','manual')
    Чтобы запросить текущее значение настройки печати, используйте следующую команду. Если вы устанавливаете настройку, команда возвращает 'auto' или 'manual'. Если вы не установили настройку, команда возвращает 'unset'.
    matlab.graphics.internal.getPrintPreferences

  • Установите значение по умолчанию на корневом объекте. Эта опция влияет только на последние данные в текущем сеансе работы с MATLAB, например:

    set(groot,'defaultFigurePaperPositionMode','manual')

Пользовательский размер страницы при печати фигуры или сохранении его в разбитый на страницы формат (PDF и форматы PostScript®), заданный как двухэлементный вектор формы [width height]. В Соединенных Штатах значением по умолчанию является [8.5 11]. В Европе и Азии, значением по умолчанию является [21 29.7].

Примечание

Если вы сохраняете фигуру в файл, свойство PaperSize только влияет на PDF и форматы файлов PostScript. Другие форматы файлов игнорируют это свойство. Используйте свойство PaperPosition управлять размером сохраненной фигуры.

Свойство PaperUnits определяет модули измерения для свойства PaperSize. Вы не можете установить свойство PaperSize, если свойство PaperUnits установлено в 'normalized'. Попытка сделать так результаты по ошибке.

Определение наборов свойств PaperSize свойство PaperType к соответствующему типу, если вы существуете, или к 'custom' в противном случае.

Модули используются для PaperSize и PaperPosition, заданного как одно из этих значений:

  • 'inches' Значение в дюймах. Это - значение по умолчанию, когда локалью являются Соединенные Штаты.

  • 'normalized' Нормированные единицы. Левый нижний угол страницы сопоставляет с (0,0), и правый верхний угол сопоставляет с (1,1).

  • 'centimeters' Значение в сантиметрах. Это - значение по умолчанию, когда локалью является Европа или Азия.

  • 'points' Значение в точках. Одна точка равняется 1/72 дюйма.

Примечание

Если вы изменяете значение свойства PaperUnits, это - хорошая практика, чтобы возвратить свойство в его исходное значение после завершения вашего вычисления, чтобы не влиять на другие функции, которые принимают, что свойство PaperUnits не изменилось.

Ориентация страницы при печати фигуры или сохранении его в разбитый на страницы формат (PDF и форматы PostScript), заданный как одно из этих значений:

  • 'portrait' — Восток самое долгое измерение страницы вертикально.

  • 'landscape' — Восток самое долгое измерение страницы горизонтально.

Смотрите, что orient функционирует для получения дополнительной информации.

Примечание

При использовании File> Save As, только PDF и полностраничные форматы PS используют свойство PaperOrientation. Другие форматы игнорируют эти значения.

Стандартные размеры страницы при печати фигуры или сохранении его в разбитый на страницы формат (PDF и форматы PostScript), заданный как одно из значений в этой таблице. Определение наборов свойств PaperType свойство PaperSize к соответствующему размеру страницы.

Значение

Размер страницы (Ширина x Высота)

'usletter'

8.5 11 в (значение по умолчанию в США)

'uslegal'

8.5 14 в

'tabloid'

11 17 в

'a0'

84.1 118.9 cm

'a1'

59.4 84.1 cm

'a2'

42 59.4 cm

'a3'

29.7 42 cm

'a4'

21 29.7 cm (значение по умолчанию в Европе и Азии)

'a5'

14.8 21 cm

'b0'

102.9 145.6 cm

'b1

72.8 102.8 cm

'b2'

51.4 72.8 cm

'b3'

36.4 51.4 cm

'b4'

25.7 36.4 cm

'b5'

18.2 25.7 cm

'arch-a'

9 12 в

'arch-b'

12 18 в

'arch-c'

18 24 в

'arch-d'

24 36 в

'arch-e'

36 48 в

'a'

8.5 11 в

'b'

11 17 в

'c'

17 22 в

'd'

22 34 в

'e'

34 43 в

'custom'

Пользовательский размер страницы. Определение нестандартного размера страницы с помощью наборов свойств PaperSize PaperPosition для этого значения.

Изобразите цвет фона при сохранении или печати, заданный как одно из этих значений:

  • 'on' — Измените фон фигуры и цвета фона осей белому.

  • 'off' Используйте те же цвета в качестве цветов на отображении. Чтобы изменить цвет фона фигуры на отображении, используйте свойство Color фигуры. Чтобы изменить цвет фона осей, используйте свойство Color осей.

Указатель мыши

развернуть все

Символ указателя, заданный как один из символа, называет в следующей таблице или как 'custom'. Внешний вид символа зависим от операционной системы.

Имя символа

Получившийся (системно-зависимый) символ

'arrow'

'ibeam'

'crosshair'

'watch' (занятая система)

'topl' или 'botr'

'topr' или 'botl'

'circle'

'cross'

'fleur'

'left' или 'right'

'top' или 'bottom'

'hand'

Примечание

Опция 'fullcrosshair' была удалена в R2014b.

Символ пользовательского указателя

Чтобы создать символ пользовательского указателя, установите свойство Pointer на 'custom' и используйте свойство PointerShapeCData задать символ. Смотрите свойство PointerShapeCData для получения дополнительной информации.

Символ пользовательского указателя, заданный как 32-by-32 матрица (для 32 32 пиксельного указателя) или как 16-by-16 матрица (для 16 16 пиксельного указателя). Фигура использует этот символ указателя, когда вы устанавливаете свойство Pointer на 'custom'.

Каждый элемент в матрице задает уровень яркости для 1 пикселя в указателе. Элемент (1,1) матрицы соответствует пикселю в левом верхнем углу в указателе. Установите элементы матрицы на одно из этих значений:

  • 1 — Черный пиксель.

  • 2 — Белый пиксель.

  • NaN Прозрачный пиксель, такой, что базовый экран показывает через.

Активный пиксель указателя, заданного как двухэлементный вектор. Вектор содержит индексы строки и столбца конкретного элемента в матрице PointerShapeCData, которая соответствует желаемому активному пикселю. Значение по умолчанию [1 1] соответствует пикселю в левом верхнем углу указателя.

Если вы задаете значение вне области значений матрицы PointerShapeCData, то указатель использует активный пиксель по умолчанию [1 1] вместо этого.

Это свойство применяется только, когда свойство Pointer установлено в 'custom'.

Интерактивность

развернуть все

Целевые оси в текущей фигуре, заданной как объект Axes, объект PolarAxes или графический объект, такие как HeatmapChart.

Во всех фигурах, для которых существуют дочерние элементы осей, всегда существует текущая система координат. Текущая система координат не должна быть самыми верхними осями и установкой, оси, чтобы быть текущей системой координат не повторно складывают ее, прежде всего, другие оси. Если фигура не содержит осей, команда get(gcf,'CurrentAxes') возвращает пустой массив.

Запросите свойство CurrentAxes получить объект текущей системы координат, не обеспечивая создание оси, если вы не существуете.

Текущий объект, возвращенный как дочерний объект фигуры. MATLAB устанавливает свойство CurrentObject на последний объект, по которому кликают в фигуре. Этот объект является верхним объектом в представлении.

Свойство HitTest дочернего объекта управляет, может ли тот объект стать CurrentObject.

Нажатие на объект, свойством HandleVisibility которого является 'off', устанавливает свойство CurrentObject на пустой массив GraphicsPlaceholder. Чтобы постараться не возвращать пустой массив, когда пользователи кликнут по скрытому объекту, установите свойство HitTest скрытого объекта к 'off'.

Используйте команду gco в качестве альтернативы для получения значения этого свойства.

Текущая точка, возвращенная как двухэлементный вектор. Вектор содержит (x, y) координаты указателя мыши, измеренного от нижнего левого угла фигуры. Значения находятся в модулях, заданных свойством Units.

Координаты обновляют, когда вы делаете любое следующее:

  • Нажмите кнопку мыши в фигуре.

  • Отпустите кнопку мыши после нажатия его в фигуре.

  • Нажмите кнопку мыши в фигуре, и затем выпустите ее вне фигуры.

  • Вращайте колесико прокрутки в фигуре.

  • Переместите мышь в фигуре (не нажимая кнопок), при условии, что свойство WindowButtonMotionFcn не пусто.

Если у фигуры есть коллбэк, который отвечает на взаимодействия мыши, и вы инициировали тот коллбэк быстрее, чем система может выполнить код, координаты не могут отразить фактическое местоположение указателя. Вместо этого они - местоположение, когда коллбэк начал выполнение.

Если вы используете свойство CurrentPoint построить точки, координатные значения могут содержать погрешность округления.

Текущий символ, возвращенный как символ последней нажатой клавиши. Это свойство обновляет, когда фигура фокусируется, в то время как пользователь нажимает клавишу.

Примечание

Поведение свойства Selected, измененного в R2014b, и это не рекомендуется. Это больше не имеет эффекта на объекты Figure. Это свойство может быть удалено в будущем релизе.

Примечание

Использование свойства SelectionHighlight не рекомендуется. Это свойство может быть удалено в будущем релизе.

Это свойство не имеет никакого эффекта на фигуры.

Тип выбора мыши, возвращенный как 'normal', 'extend', 'alt' или 'open'. Это свойство предоставляет информацию о последнем нажатии кнопки мыши, которое произошло в фигуре.

Эта таблица приводит возможные значения SelectionType и пользовательские действия, которые производят те значения.

Значение

Соответствующее действие

'normal'

Щелкните левой кнопкой мыши.

'extend'

Любое следующее:

  • Shift - щелкните левой кнопкой мыши.

  • Щелкните средней кнопкой мыши.

  • Щелкните обеими левыми и правыми кнопками мыши.

'alt'

Любое из следующего:

  • Control - щелкните левой кнопкой мыши.

  • Щелкните правой кнопкой мыши.

'open'

Дважды кликните любую кнопку мыши.

Контекстное меню, заданное как объект ContextMenu. Используйте это свойство отобразить контекстное меню, когда пользователь щелкнет правой кнопкой по компоненту UI. Создайте контекстное меню с помощью функции uicontextmenu.

Изобразите видимость, заданную как 'on' или 'off'. Свойство Visible определяет, отображается ли фигура на экране. Если свойство Visible фигуры установлено в 'off', целая фигура невидима, но можно все еще задать и получить доступ к его свойствам.

Изменение размера невидимой фигуры инициировало коллбэк SizeChangedFcn, когда фигура становится видимой.

Примечание

Изменение свойства Visible фигуры не изменяет свойство Visible своих дочерних компонентов даже при том, что сокрытие фигуры препятствует тому, чтобы его дочерние элементы отобразились.

Общие коллбэки

развернуть все

Кнопка вниз коллбэк, заданный как одно из этих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

Этот коллбэк выполняется каждый раз, когда пользователь кликает по пустой области фигуры.

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

Используйте свойство SelectionType определить, нажал ли пользователь модифицирующие клавиши.

Функция создания компонентов, заданная в качестве одного из следующих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

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

Это свойство задает функцию обратного вызова, чтобы выполниться, когда MATLAB создает компонент. MATLAB инициализирует все значения свойства компонентов прежде, чем выполнить коллбэк CreateFcn. Если вы не задаете свойство CreateFcn, то MATLAB выполняет функцию создания по умолчанию.

Используйте функцию gcbo в своем коде CreateFcn, чтобы получить объект компонента, который создается.

Установка свойства CreateFcn на существующем объекте компонента не имеет никакого эффекта.

Функция удаления компонента, заданная в качестве одного из следующих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

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

Свойство DeleteFcn задает функцию обратного вызова, чтобы выполниться, когда MATLAB удаляет компонент (например, когда пользователь закрывает окно). MATLAB выполняет коллбэк DeleteFcn прежде, чем уничтожить свойства объекта компонента. Если вы не задаете свойство DeleteFcn, то MATLAB выполняет функцию удаления по умолчанию.

Используйте функцию gcbo в своем коде DeleteFcn, чтобы получить объект компонента, который удаляется.

Коллбэки клавиатуры

развернуть все

Коллбэк нажатия клавиши, заданный как одно из этих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

Эта функция обратного вызова выполняется, когда пользователь нажимает клавишу, в то время как фигура или дочерний объект фокусируются. Если пользователь нажимает клавишу на UIControl или компоненте Table, коллбэк не выполняется, если свойство Enable не установлено в 'off'.

Если пользователь нажимает несколько клавиш приблизительно в то же время, MATLAB обнаруживает все ключи.

Коллбэк KeyPressFcn может получить доступ к определенной информации о взаимодействии пользователя с клавиатурой. MATLAB передает эту информацию в объекте KeyData в качестве второго аргумента к вашей функции обратного вызова. Эта таблица приводит свойства этого объекта.

СвойствоОписание
Character

Символ, который появляется в результате нажатия клавиши или ключей.

Нажатие определенных клавиш или изменение ключей с ключом Ctrl могут поместить непечатные символы в свойство Character.

Нажимание одних только определенных клавиш (таких как Ctrl, Alt, Shift) не генерирует данные Character.

Modifier

Массив ячеек, содержащий имена нажатых модифицирующих клавиш, таких как control, alt или shift. Если никакие модифицирующие клавиши не нажимаются, массив ячеек пуст.

Key

Клавиша, нажатая, идентифицированная строчной меткой на ключе или описательным словом, таким как 'space'.

SourceОбъект, который фокусируется, когда пользователь нажимает клавишу.
EventName'KeyPress'

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

Свойство CurrentCharacter также возвращает символьную информацию.

Коллбэк ключевого релиза, заданный как одно из этих значений

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

Эта функция обратного вызова выполняется, когда пользователь нажимает клавишу, в то время как фигура или дочерний объект фокусируются. Если пользователь отпускает клавишу на UIControl или компоненте Table, коллбэк не выполняется, если свойство Enable не установлено в 'off'.

Коллбэк KeyReleaseFcn может получить доступ к определенной информации о взаимодействии пользователя с клавиатурой. MATLAB передает эту информацию в объекте KeyData в качестве второго аргумента к вашей функции обратного вызова. Эта таблица приводит свойства этого объекта.

СвойствоОписание
Character

Символ, который соответствует ключу или клавишам, которые отпускаются.

Определенные ключи или сочетания клавиш могут возвратить непечатные символы в этом свойстве.

Нажимание и отпускание одних только определенных клавиш (таких как Ctrl, Alt, Shift) не генерируют данные Character.

Modifier

Массив ячеек, содержащий имена выпущенных модифицирующих клавиш, таких как control, alt или shift. Если никакие модифицирующие клавиши не выпущены, массив ячеек пуст.

Key

Клавиша, отпущенная, идентифицированная (строчной) меткой на ключе или описательным словом, таким как 'space'.

SourceОбъект, который фокусируется, когда клавиша отпускается.
EventName'KeyRelease'

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

Обратные вызовы окна

развернуть все

Закройте коллбэк запроса, заданный как одно из этих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

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

Этот коллбэк выполняется каждый раз, когда пользователь пытается закрыть окно рисунка. Можно, например, отобразить диалоговое окно, чтобы попросить, чтобы пользователь подтвердил или отменил операцию закрытия или препятствовал тому, чтобы пользователи закрыли фигуру, которая содержит пользовательский интерфейс.

Основной механизм:

  1. Пользователь выпускает close или команду close all из командной строки, закрывает фигуру из компьютерного меню менеджера окон или закрывает фигуру путем выхода из MATLAB.

  2. Операция закрытия выполняет функцию, определяемую фигурой свойство CloseRequestFcn. Функцией по умолчанию является closereq.

    Функция closereq безусловно удаляет текущую фигуру, уничтожая окно. Функция closereq использует в своих интересах то, что команда close делает каждую фигуру заданной в качестве аргумента текущая фигура прежде, чем вызвать ее соответствующую близкую функцию запроса.

Функция closereq соблюдает установку свойства ShowHiddenHandles во время удаления фигуры и не удаляет скрытые фигуры.

Если близкие вызовы функции запроса delete или функция close, MATLAB никогда не закрывает фигуру. (Можно вызвать delete(f) из командной строки, если вы создали окно с неразрушающей близкой функцией запроса.)

Пример: Код CloseRequestFcn, чтобы отобразить диалоговое окно

Этот пример показывает, как закодировать близкую функцию запроса, чтобы отобразить диалоговое окно вопроса, прося, чтобы пользователь подтвердил операцию закрытия. Сохраните код в перезаписываемую папку в вашей системе.

function my_closereq(src,callbackdata)
% Close request function 
% to display a question dialog box 
   selection = questdlg('Close This Figure?',...
      'Close Request Function',...
      'Yes','No','Yes'); 
   switch selection 
      case 'Yes'
         delete(gcf)
      case 'No'
      return 
   end
end

Теперь, создайте фигуру, задающую my_closereq для CloseRequestFcn:

figure('CloseRequestFcn',@my_closereq)

Закройте окно рисунка и отображения диалогового окна вопроса.

Размер изменил коллбэк, заданный как одно из этих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

Задайте этот коллбэк, чтобы настроить размещение приложения, когда размер этого контейнера изменяется (например, когда пользователь изменяет размер окна).

Коллбэк SizeChangedFcn выполняется когда:

  • Этот контейнер становится видимым впервые.

  • Этот контейнер видим, в то время как его размер изменяется.

  • Этот контейнер становится видимым впервые после того, как его размер изменится. Эта ситуация происходит, когда размер изменяется, в то время как контейнер невидим, и затем это становится видимым позже.

Другие важные моменты, чтобы рассмотреть при определении коллбэка SizeChangedFcn:

  • Рассмотрите задержку отображения этого контейнера до окончания всех переменных, что использование SizeChangedFcn задано. Эта практика может препятствовать тому, чтобы коллбэк SizeChangedFcn возвратил ошибку. Чтобы задержать отображение контейнера, установите его свойство Visible на 'off'. Затем установите свойство Visible на 'on' после того, как вы задаете переменные, которые использует ваш коллбэк SizeChangedFcn.

  • Если ваше приложение содержит вложенные контейнеры, они изменяют размер от наизнанку.

  • Чтобы получить доступ к контейнеру, который изменяет размер из SizeChangedFcn, обратитесь к исходному объекту (первый входной параметр в коллбэке) или используйте функцию gcbo.

Совет

Как легкая альтернатива определению коллбэка SizeChangedFcn, можно установить свойство Units всех объектов, вы вставляете контейнер к 'normalized'. Выполнение так заставляет те компоненты масштабироваться пропорционально с контейнером.

Пример: Поле редактирования с постоянной высотой

Используйте коллбэк SizeChangedFcn, чтобы ограничить размер компонентов пользовательского интерфейса. Например, следующий код создает пользовательский интерфейс, который имеет поле редактирования наверху окна. Когда пользователь изменяет размер окна, функция sbar ограничивает свою высоту 20 пикселями. Функция также устанавливает ширину поля редактирования на ширину фигуры.

Если вы используете R2014b или позже, используйте запись через точку, чтобы установить и запросить свойства:

function myui
f = figure('Visible','off','SizeChangedFcn',@sbar); 
u = uicontrol('Style','edit','Tag','StatusBar');
f.Visible = 'on';
    function sbar(src,callbackdata)
       old_units = src.Units;
       src.Units = 'pixels';
       sbar_units = u.Units;
       u.Units = 'pixels';
       fpos = src.Position;
       upos = [1 fpos(4) - 20 fpos(3) 20];
       u.Position = upos;
       u.Units = sbar_units;
       src.Units = old_units;
       u.Visible = 'on';
    end
end

Если вы используете R2014a или более ранний релиз, используйте этот код вместо этого.

function myui
f = figure('Visible','off','SizeChangedFcn',@sbar); 
u = uicontrol('Style','edit','Tag','StatusBar');
set(f,'Visible','on');
    function sbar(src,callbackdata)
       old_units = get(src,'Units');
       set(src,'Units','pixels');
       sbar_units = get(u,'Units');
       set(u,'Units','pixels');
       fpos = get(src,'Position');
       upos = [1 fpos(4) - 20 fpos(3) 20];
       set(u,'Position',upos);
       set(u,'Units',sbar_units);
       set(src,'Units',old_units);
       set(u,'Visible','on');
    end
end

Кнопка Window вниз коллбэк, заданный как одно из этих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

Этот коллбэк выполняется, когда пользователь щелкает где угодно в фигуре или одном из его дочерних объектов. Если пользователь нажимает UIControl или компонент Table, коллбэк не выполняется, если свойство Enable не установлено в 'off'.

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

Коллбэк движения кнопки Window, заданный как одно из этих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

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

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

Пример: простое приложение рисунка

Этот пример показывает, как создать приложение рисунка, которое использует коллбэк WindowButtonMotionFcn. Скопируйте и вставьте следующий код в редактор и запустите его. Затем используйте мышь, чтобы чертить набор связанных линейных сегментов:

  • Перетащите в осях, чтобы чертить первый линейный сегмент.

  • Щелкните еще раз, чтобы задать точку привязки для линейного сегмента.

  • Переместите мышь, чтобы добавить другой линейный сегмент.

  • Щелкните правой кнопкой, чтобы закончить режим рисунка.

function drawing_app
figure('WindowButtonDownFcn',@wbdcb)
ah = axes('SortMethod','childorder');
axis ([1 10 1 10])
title('Click and drag')
   function wbdcb(src,callbackdata)
     seltype = src.SelectionType;
     % This code uses dot notation to set properties
     % Dot notation runs in R2014b and later.
     % For R2014a and earlier: seltype = get(src,'SelectionType');
     if strcmp(seltype,'normal')
        src.Pointer = 'circle';
        cp = ah.CurrentPoint;
        % For R2014a and earlier: 
        % set(src,'Pointer','circle');
        % cp = get(ah,'CurrentPoint');
        xinit = cp(1,1);
        yinit = cp(1,2);
        hl = line('XData',xinit,'YData',yinit,...
        'Marker','p','color','b');
        src.WindowButtonMotionFcn = @wbmcb;
        src.WindowButtonUpFcn = @wbucb;
        % For R2014a and earlier: 
        % set(src,'WindowButtonMotionFcn',@wbmcb);
        % set(src,'WindowButtonUpFcn',@wbucb);

     end    
 
        function wbmcb(src,callbackdata)
           cp = ah.CurrentPoint;
           % For R2014a and earlier: 
           % cp = get(ah,'CurrentPoint');
           xdat = [xinit,cp(1,1)];
           ydat = [yinit,cp(1,2)];
           hl.XData = xdat;
           hl.YData = ydat;
           % For R2014a and earlier: 
           % set(hl,'XData',xdat);
           % set(hl,'YData',ydat);
           drawnow
        end
   
        function wbucb(src,callbackdata)
           last_seltype = src.SelectionType;
           % For R2014a and earlier: 
           % last_seltype = get(src,'SelectionType');
           if strcmp(last_seltype,'alt')
              src.Pointer = 'arrow';
              src.WindowButtonMotionFcn = '';
              src.WindowButtonUpFcn = '';
              % For R2014a and earlier:
              % set(src,'Pointer','arrow');
              % set(src,'WindowButtonMotionFcn','');
              % set(src,'WindowButtonUpFcn','');
           else
              return
           end
        end
  end
end

Коллбэк кнопки окна, заданный как одно из этих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

Этот коллбэк выполняется, когда пользователь отпускает кнопку мыши где угодно в фигуре или одном из ее дочерних объектов. Если пользователь отпускает кнопку мыши на UIControl или компоненте Table, коллбэк не выполняется, если свойство Enable не установлено в 'off'.

Действия кнопки сопоставлены с консервативными действиями в фигуре. Указатель мыши должен быть в фигуре, когда консервативное действие происходит, но это может быть вне фигуры, когда действие кнопки происходит.

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

Коллбэк нажатия клавиши окна, заданный как одно из этих значений

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

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

Эта функция обратного вызова может получить доступ к определенной информации о взаимодействии пользователя с клавиатурой. MATLAB передает эту информацию в объекте KeyData в качестве второго аргумента к вашей функции обратного вызова. Эта таблица приводит свойства этого объекта.

СвойствоОписание
Character

Символ, который появляется в результате нажатия клавиши или ключей.

Нажатие определенных клавиш или изменение ключей с ключом Ctrl могут возвратить непечатные символы в этом свойстве.

Нажимание и отпускание одних только определенных клавиш (таких как Ctrl, Alt, Shift) не генерируют данные Character.

Modifier

Массив ячеек, содержащий имена выпущенных модифицирующих клавиш, таких как control, alt или shift. Если никакие модифицирующие клавиши не выпущены, массив ячеек пуст.

Key

Клавиша, отпущенная, идентифицированная (строчной) меткой на ключе или описательным словом, таким как 'space'.

SourceОбъект, который фокусируется, когда клавиша отпускается.
EventName'KeyRelease'

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

Коллбэк ключевого релиза окна, заданный как одно из этих значений

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

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

Эта функция обратного вызова может получить доступ к определенной информации о взаимодействии пользователя с клавиатурой. MATLAB передает эту информацию в объекте KeyData в качестве второго аргумента к вашей функции обратного вызова. Эта таблица приводит свойства этого объекта.

СвойствоОписание
Character

Символ, который соответствует ключу или клавишам, которые отпускаются.

Определенные ключи или сочетания клавиш могут возвратить непечатные символы в этом свойстве.

Нажимание и отпускание одних только определенных клавиш (таких как Ctrl, Alt, Shift) не генерируют данные Character.

Modifier

Массив ячеек, содержащий имена выпущенных модифицирующих клавиш, таких как control, alt или shift. Если никакие модифицирующие клавиши не выпущены, массив ячеек пуст.

Key

Клавиша, отпущенная, идентифицированная (строчной) меткой на ключе или описательным словом, таким как 'space'.

SourceОбъект, который фокусируется, когда клавиша отпускается.
EventName'KeyRelease'

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

Коллбэк колесика прокрутки окна, заданный как одно из этих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

Этот коллбэк выполняется, когда пользователь перемещает колесико прокрутки, в то время как фигура или любой, если его дочерние элементы фокусируются. Однако другие объекты могут получить перемещение колесика прокрутки и вмешаться в выполнение этого коллбэка.

Выполнение этого коллбэка не имеет никакого эффекта на свойства CurrentObject и SelectionType.

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

Свойство

Содержимое

VerticalScrollCount

Положительное или отрицательное число, которое указывает на направление и количество нажатий кнопки колесика прокрутки. Прокручивание вниз возвращает положительное значение. Прокрутка возвращает отрицательное значение.

Вертикальное количество прокрутки является суммой всех нажатий кнопки колесика прокрутки, которые произошли с прошлого раза выполняемый коллбэк. Как правило, значением является 1 или -1. Однако количество прокрутки может иметь большее значение, если коллбэк WindowScrollWheelFcn занимает много времени, чтобы возвратиться, или если пользователь вращает колесико прокрутки очень быстро.

VerticalScrollAmount

Количество строк прокручено для каждого нажатия кнопки колесика прокрутки. Как правило, значением является 3, но некоторые системы могут возвратить различное значение в зависимости от того, как мышь сконфигурирована.

Source

Объект, который выполняет коллбэк.

EventName'WindowScrollWheel'

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

Пример: приложение для изменения x - пределы по осям

Этот пример показывает, как создать приложение, которое отображает график. Пользователь может прокрутить, чтобы изменить пределы x - ось. Скопируйте и вставьте следующий код в редактор и запустите его.

function scroll_wheel
% Shows how to use WindowScrollWheelFcn property
%
   f = figure('WindowScrollWheelFcn',@figScroll,'Name','Scroll Wheel Demo');
   x = [0:.1:40];
   y = 4.*cos(x)./(x+2);
   a = axes; 
   h = plot(x,y);
   title('Rotate the scroll wheel')

   function figScroll(src,callbackdata)
      if callbackdata.VerticalScrollCount > 0 
         xd = h.XData;
         % This code uses dot notation to set properties
         % Dot notation runs in R2014b and later.
         % For R2014a and earlier: xd = get(h,'XData');
         inc = xd(end)/20;
         x = [0:.1:xd(end)+inc];
         re_eval(x)
      elseif callbackdata.VerticalScrollCount < 0 
         xd = h.XData;
         % For R2014a and earlier: xd = get(h,'XData');
         inc = xd(end)/20;
         x = [0:.1:xd(end)-inc+.1]; % Don't let xd = 0;
         re_eval(x)
      end
   end

   function re_eval(x)
      y = 4.*cos(x)./(x+2);
      h.YData = y;
      h.XData = x;
      a.XLim = [0 x(end)];
      % For R2014a and earlier: 
      % set(h,'YData',y);
      % set(h,'XData',x);
      % set(a,'XLim',[0 x(end)]);
      drawnow
   end
end

Измените размер функции обратного вызова, заданной как одно из этих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

Примечание

Использование свойства ResizeFcn не рекомендуется. Это может быть удалено в будущем релизе. Используйте SizeChangedFcn вместо этого.

Типы данных: function_handle | cell | char

Контроль выполнения обратного вызова

развернуть все

Прерывание обратного вызова, обозначаемое как 'on' или 'off'. Свойство «Прерывание» определяет, можно ли прерывать выполняемый обратный вызов.

Существует два состояния обратного вызова:

  • Выполняемый обратный вызов — это актуальный на данный момент обратный вызов.

  • Прерывающий обратный вызов — это обратный вызов, который пытается прервать текущий обратный вызов.

Каждый раз, когда MATLAB вызывает обратный вызов, этот обратный вызов пытается прервать текущий обратный вызов (если он существует). Свойство «Прерывание» объекта, имеющего текущий обратный вызов, определяет, разрешено ли прерывание:

  • Значение 'on' позволяет другим обратным вызовам прерывать обратные вызовы объекта. Прерывание происходит на следующем этапе, где MATLAB обрабатывает очередь, такой как тогда, когда существует drawnow, figure, getframe, waitfor или pause.

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

    • Если текущий обратный вызов не содержит одну из этих команд, MATLAB завершает выполнение обратного вызова без прерывания.

  • Значение 'off' блокирует все попытки прерывания. Свойство BusyAction объекта, владеющего прерывистым обратным вызовом, определяет, отменяется ли прерывание обратного вызова или помещается в очередь.

Примечание

Прерывание и выполнение обратного вызова происходят по-разному в таких ситуациях:

  • Если прерывающий обратный вызов является обратным вызовом DeleteFcn, CloseRequestFcn или SizeChangedFcn, то прерывание происходит независимо от значения свойства прерывания.

  • Если текущий обратный вызов выполняет функцию waitfor, то прерывание происходит независимо от значения свойства прерывания.

  • Объекты-таймеры выполняются в соответствии с расписанием независимо от значения свойства прерывания.

  • MATLAB не сохраняет состояние свойств или отображения, когда прерывание происходит. Например, объект, возвращенный командой gca или gcf, может измениться при выполнении другого обратного вызова.

Смотрите Выполнение обратного вызова Прерывания для примера, который показывает, как свойства Interruptible и BusyAction влияют на поведение программы.

Постановка в очередь коллбэка, заданная как 'queue' (значение по умолчанию) или 'cancel'. Свойство BusyAction определяет, как MATLAB обрабатывает выполнение прерывания обратных вызовов. Существует два состояния обратного вызова:

  • Выполняемый обратный вызов — это актуальный на данный момент обратный вызов.

  • Прерывающий обратный вызов — это обратный вызов, который пытается прервать текущий обратный вызов.

Свойство BusyAction источника прерывания обратного вызова определяет, как MATLAB обрабатывает свое выполнение. Свойство BusyAction имеет эти значения:

  • 'queue' — поместите прерывающий обратный вызов в очередь вызовов, подлежащих обработке после завершения обратного вызова.

  • cancel' — не выполнять прерывание обратного вызова.

Каждый раз, когда MATLAB вызывает коллбэк, тот коллбэк всегда пытается прервать выполняющийся коллбэк. Свойство Interruptible объекта, коллбэк которого запускается, определяет, позволено ли прерывание. Если Interruptible установлен в:

  • 'on' — Прерывание происходит в следующей точке, где MATLAB обрабатывает очередь. Это значение по умолчанию.

  • Свойство off — The BusyAction (объекта, владеющего прерыванием обратного вызова), определяет, ставит ли MATLAB в очередь или игнорирует прерывание обратного вызова.

Смотрите Выполнение обратного вызова Прерывания для примера, который показывает, как свойства BusyAction и Interruptible влияют на поведение программы.

Способность стать текущим объектом, заданным как 'on' или 'off':

  • 'on' — Устанавливает текущий объект на Figure, когда пользователь кликает по компоненту в запущенном приложении. И свойство CurrentObject Figure и gco функциональный возврат Figure как текущий объект.

  • 'off' Текущий объект не обновляет, когда пользователь кликает по фигуре в запущенном приложении.

Это свойство доступно только для чтения.

Удаление статуса, возврат на 'off' или 'on'. MATLAB задает значение свойства BeingDeleted 'on', когда обратный вызов DeleteFcn начинает выполнение. Значение свойства BeingDeleted остается 'on' до того момента, как объект перестанет существовать.

Проверьте значение свойства BeingDeleted, чтобы убедиться, что объект не будет удален до запроса или изменения.

Родительский элемент/Дочерний элемент

развернуть все

Родительский элемент фигуры, возвращенный как корневой объект.

Дочерние элементы Figure, возвращенного как пустой GraphicsPlaceholder или 1D массив объектов.

Вы не можете добавить или удалить дочерние элементы, использующие свойство Children. Используйте это свойство просмотреть список дочерних элементов или переупорядочить дочерние элементы. Порядок дочерних элементов отражает порядок "от первого до последнего" (порядок размещения) компонентов на экране. MATLAB не может позволить вам изменять порядок определенных объектов. Например, UIControl и объекты Legend всегда перед объектами Axes.

Чтобы добавить дочерний элемент в этот список, установите свойство Parent дочернего компонента быть объектом Figure.

Объекты с набором свойств HandleVisibility к 'off' не перечисляют в свойстве Children.

Видимость объекта фигуры, заданного как 'on', 'callback' или 'off'.

Это свойство определяет, является ли фигура в его родительском элементе (корень) списком дочерних элементов. HandleVisibility полезен для предотвращения пользователей командной строки от случайного вовлечения или удаления фигуры, которая содержит только компоненты пользовательского интерфейса (такие как диалоговое окно).

Если объект не находится в своем родительском списке дочерних элементов, функции, которые находят, объекты путем поиска иерархии объектов или запроса свойств не могут возвратить тот объект. Такие функции включают get, findobj, gca, gcf, gco, newplot, cla, clf и close.

Когда значение свойства HandleVisibility ограничивается с помощью настроек 'callback' или 'off', объект не появляется в свойстве Children родительского объекта, фигуры не появляются в корневом свойстве CurrentFigure, объекты не появляются в корневом свойстве CallbackObject или в фигуре свойство CurrentObject, и оси не появляются в своем родительском свойстве CurrentAxes.

Установите корневое свойство ShowHiddenHandles на 'on' делать все объекты видимыми, независимо от их настроек HandleVisibility (это не влияет на значения свойств HandleVisibility).

Идентификаторы

развернуть все

Имя фигуры, заданной как вектор символов или скаляр строки.

Пример: figure('Name','Results') определяет имя фигуры к 'Results'.

По умолчанию именем является 'Figure n', где n является целым числом. Когда вы задаете свойство Name, заголовок фигуры становится 'Figure n: name'. Если вы хотите только, чтобы значение Name появилось, установите IntegerHandle или NumberTitle к 'off'.

Это свойство доступно только для чтения.

Количество фигуры, возвращенной как целочисленный или пустой массив. Можно обратиться к фигуре, использующей это значение. Например, figure(2) делает фигуру со значением свойства Number 2 текущей фигурой.

Если свойство IntegerHandle установлено в 'off', свойство Number пусто.

Если IntegerHandle является 'on', свойство Number является целым числом. Когда вы удаляете фигуру, MATLAB снова использует номер для следующей фигуры.

Заголовок номера, заданный как 'on' или 'off'. Когда вы устанавливаете это свойство на 'on', заголовок фигуры включает фразу 'Figure n', где n является значением свойства Number.

И NumberTitle и IntegerHandle должны собираться в 'on' показать, чтобы показать номер в заголовке.

Используйте целочисленный указатель, заданный как 'on' или 'off'.

Если вы устанавливаете свойство IntegerHandle на 'on', MATLAB находит самое низкое целочисленное значение, которое не используется существующей фигурой и устанавливает свойство Number на то значение. Если вы удаляете фигуру, MATLAB может снова использовать свой номер на новой фигуре.

Если вы устанавливаете свойство IntegerHandle на 'off', MATLAB не присваивает целочисленное значение фигуре, и это устанавливает свойство Number на пустой массив.

Чтобы показать номер фигуры в строке заголовка, и IntegerHandle и NumberTitle должны быть установлены в 'on'.

Имя файла для сохранения фигуры, заданной как вектор символов или скаляр строки. GUIDE использует это свойство сохранить имя файла размещения пользовательского интерфейса, который это сохранило.

Пример: figure('FileName','myfile.fig') устанавливает имя файла на myfile.fig.

Это свойство доступно только для чтения.

Тип объекта Figure, возвращенного как 'figure'. Используйте это свойство найти все объекты данного типа в иерархии графического вывода.

Идентификатор объекта, заданный как вектор символов или скаляр строки. Вы можете задать уникальное значение тега, которое будет служить идентификатором для любого объекта компонента в вашем приложении. Когда вам нужен доступ к объекту в другом месте вашего кода, вы можете использовать функцию findobj для поиска объекта на основе значения тега.

Пример: figure('Tag','plotwindow') создает фигуру, идентификатором тега которой является 'plotwindow'.

Пользовательские данные, заданные как любой массив. Определение UserData может быть полезно для обмена данными в рамках приложений. Смотрите Осуществляют обмен данными Среди Коллбэков для получения дополнительной информации.

Представлено до R2006a