exponenta event banner

Свойства рисунка

Управление внешним видом и поведением окна фигуры

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

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

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

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

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

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

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

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

Примечание

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

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

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

  • 'figure' - Отображается панель инструментов.

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

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

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

Примечание

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

Интерактивная стыковка фигур, указанная как 'on' или 'off'или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

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

  • 'off' - MATLAB отключает пункт меню Desktop > Dock Figure и не отображает кнопку figure dock.

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

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

Цвет фона, определяемый как триплет 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 собственность и некоторые рекомендуемые передовые методы:

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

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

  • Запрос reset на рисунке не изменяет значение WindowStyle собственность.

Поведение стиля модального окна

Когда WindowStyle имеет значение 'modal', окно рисунка перехватывает все действия клавиатуры и мыши над всеми окнами MATLAB, пока окна видны. Не затрагиваются окна, принадлежащие приложениям, отличным от 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' (по умолчанию)

Пикселы.

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

  • В системах Windows пиксель равен 1/96 дюйма.

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

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

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

Эти единицы основаны на стандартном шрифте uicontrol объекта graphics root:

  • Ширина символа = ширина буквы 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'или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

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

Нанесение

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

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

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

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

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

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

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

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

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

Директива о порядке добавления следующего участка, указанная как 'add', 'new', 'replace', или 'replacechildren'.

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

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

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

'add'

Добавление новых графических объектов без очистки или сброса текущей фигуры.

'replacechildren'

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

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

'replace'

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

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

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

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

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

  • 'painters' - Рисовальщик. Этот параметр хорошо подходит для осей на виде 2-D. В 2-D средство визуализации Painters сортирует графические объекты по дочернему порядку (порядок указан). В 3-D средство визуализации Painters сортирует объекты спереди в обратном порядке. Однако он может неправильно нарисовать пересекающиеся многоугольники в 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'или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

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

  • Renderer свойство имеет значение 'painters'.

  • Renderer свойство имеет значение 'opengl' и аппаратная карта поддерживает OpenGL.

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

Примечание

Сглаживание графики не влияет на текст. MATLAB сглаживает текст независимо от значения GraphicsSmoothing собственность.

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

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

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

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

  • left и bottom values - управляет расстоянием от левого нижнего угла страницы до левого нижнего угла фигуры. Эти значения игнорируются при сохранении фигуры в нестраничном формате, например в формате PNG или EPS.

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

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 для получения дополнительной информации.

Примечание

При использовании команды «Файл» > «Сохранить как» используются только форматы PS PDF и полностраничного формата. PaperOrientation собственность. Другие форматы игнорируют эти значения.

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

Стоимость

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

'usletter'

8,5 на 11 дюймов (по умолчанию в США)

'uslegal'

8,5 на 14 дюймов

'tabloid'

11 на 17 в

'a0'

84,1-by-118,9 см

'a1'

59,4-на-84,1 см

'a2'

42 на 59,4 см

'a3'

29,7-на-42 см

'a4'

21 на 29,7 см (дефолт в Европе и Азии)

'a5'

14,8 на 21 см

'b0'

102,9-на-145,6 см

'b1

72,8-на-102,8 см

'b2'

51,4-на-72,8 см

'b3'

36,4-на-51,4 см

'b4'

25,7-на-36,4 см

'b5'

18,2-на-25,7 см

'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'или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

  • 'on' - Измените цвет фона фигуры и осей на белый. Текст и другие аспекты рисунка также могут изменить цвет, чтобы улучшить внешний вид генерируемых выходных данных.

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

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

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

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

Стоимость

Результирующий символ (зависит от системы)

'arrow'

'ibeam'

'crosshair'

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

'topl' или 'botr'

'topr' или 'botl'

'circle'

'cross'

'fleur'

'left' или 'right'

'top' или 'bottom'

'hand'

Пользовательский символ указателя

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

Ограничения

  • Значения символов указателя 'circle', 'cross', и 'custom' не поддерживаются в веб-браузере Microsoft Edge ®.

  • Символы указателя, указанные Pointer свойство не отображается поверх компонентов интерфейса пользователя HTML, созданных с помощью uihtml функция.

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

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

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

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

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

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

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

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

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

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

Состояние видимости, указанное как 'on' или 'off'или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

  • 'on' - Просмотр объекта.

  • 'off' - Скрыть объект, не удаляя его. По-прежнему можно получить доступ к свойствам невидимого компонента пользовательского интерфейса.

Чтобы приложение начиналось быстрее, установите Visible свойство для 'off' для всех компонентов, которые не должны появляться при запуске.

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

Изменение Visible свойство контейнера не изменяет значения Visible свойств дочерних компонентов. Это верно, даже если скрытие контейнера приводит к скрытию дочерних компонентов.

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

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

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

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

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

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

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

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

Координаты обновляются при выполнении любого из следующих действий.

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

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

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

  • Поверните колесо прокрутки в пределах фигуры.

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

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

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

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

Примечание

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

Примечание

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

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

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

Стоимость

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

'normal'

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

'extend'

Любое из следующих действий:

  • Щелкните левой кнопкой мыши, удерживая нажатой клавишу Shift.

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

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

'alt'

Одно из следующих действий:

  • Щелкните левой кнопкой мыши, удерживая нажатой клавишу «Control».

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

'open'

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

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

Общие обратные вызовы

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

Обратный вызов Button down, указанный как одно из следующих значений:

  • Дескриптор функции.

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

  • Вектор символов, содержащий допустимое выражение 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' или 'inactive'.

Если пользователь нажимает несколько клавиш приблизительно одновременно, 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' или 'inactive'.

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 пикселями. Функция также устанавливает ширину поля редактирования как ширину фигуры. Используйте точечную нотацию для задания и запроса свойств.

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

Обратный вызов кнопки «Окно», указанный как одно из следующих значений:

  • Дескриптор функции.

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

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

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

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

Обратный вызов при движении кнопки окна, указанный как одно из следующих значений:

  • Дескриптор функции.

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

  • Вектор символов, содержащий допустимое выражение 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;
     if strcmp(seltype,'normal')
        src.Pointer = 'circle';
        cp = 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;
     end    
 
        function wbmcb(src,callbackdata)
           cp = ah.CurrentPoint;
           xdat = [xinit,cp(1,1)];
           ydat = [yinit,cp(1,2)];
           hl.XData = xdat;
           hl.YData = ydat;
           drawnow
        end
   
        function wbucb(src,callbackdata)
           last_seltype = src.SelectionType;
           if strcmp(last_seltype,'alt')
              src.Pointer = 'arrow';
              src.WindowButtonMotionFcn = '';
              src.WindowButtonUpFcn = '';
           else
              return
           end
        end
  end
end

Обратный вызов с помощью кнопки «Окно», указанный как одно из следующих значений:

  • Дескриптор функции.

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

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

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

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

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

Окно (Window) - обратный вызов нажатием клавиши, указанное как одно из этих значений

  • Дескриптор функции.

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

  • Вектор символов, содержащий допустимое выражение 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;
         inc = xd(end)/20;
         x = [0:.1:xd(end)+inc];
         re_eval(x)
      elseif callbackdata.VerticalScrollCount < 0 
         xd = 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)];
      drawnow
   end
end

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

  • Дескриптор функции.

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

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

Примечание

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

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

Управление выполнением обратного вызова

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

Прерывание обратного вызова, указанное как 'on' или 'off'или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

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

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

  • Обратный вызов с прерыванием - это обратный вызов, который пытается прервать выполняющийся обратный вызов.

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

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

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

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

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

Примечание

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

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

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

  • Timer объекты выполняются в соответствии с графиком независимо от Interruptible значение свойства.

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

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

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

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

  • Обратный вызов с прерыванием - это обратный вызов, который пытается прервать выполняющийся обратный вызов.

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

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

  • 'cancel' - Не выполняйте обратный вызов прерывания.

Всякий раз, когда MATLAB вызывает обратный вызов, этот обратный вызов всегда пытается прервать выполнение обратного вызова. Interruptible свойство объекта, обратный вызов которого выполняется, определяет, разрешено ли прерывание. Если Interruptible имеет значение:

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

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

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

Возможность стать текущим объектом, указанным как 'on' или 'off'или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

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

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

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

Состояние удаления, возвращаемое как логическое значение включения/выключения типа matlab.lang.OnOffSwitchState.

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

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

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

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

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

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

Невозможно добавить или удалить дочерние элементы с помощью 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'или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

При установке для этого свойства значения 'on', название фигуры включает фразу 'Figure n', где n - значение Number собственность.

Оба NumberTitle и IntegerHandle необходимо установить значение 'on' для отображения номера в заголовке.

Использовать целочисленный дескриптор, указанный как 'on' или 'off'или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

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

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

Для отображения номера фигуры в строке заголовка: IntegerHandle и NumberTitle необходимо установить значение 'on'.

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

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

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

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

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

Пользовательские данные, указанные как любой массив. Определение UserData может быть полезен для совместного использования данных в приложениях. Дополнительные сведения см. в разделе Совместное использование данных среди обратных вызовов.

Вопросы совместимости

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

Не рекомендуется начинать с R2020a

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