exponenta event banner

drawcuboid

Создание настраиваемой кубической окупаемости инвестиций

Описание

пример

roi = drawcuboid создает Cuboid Объект ROI и позволяет интерактивно рисовать интересующую кубоидальную область (ROI) на текущих осях.

Чтобы нарисовать ROI, вызовите drawcuboid функция. Функция рисует кубическую ROI, центрированную в объеме. Переместите указатель на изображение. Курсор изменяется на форму флера. Переместите окупаемость инвестиций в любое место изображения. Для завершения окупаемости инвестиций нажмите кнопку мыши. Дополнительные сведения об использовании ROI, включая сочетания клавиш и параметры контекстного меню, см. в разделе Советы.

Примечание

drawcuboid является удобной функцией для создания Cuboid Объект окупаемости инвестиций. Если объект ROI создается непосредственно, вызов Cuboid, вы должны позвонить draw функция объекта для включения интерактивного рисования ROI. Напротив, drawcuboid создает объект ROI и вызывает draw объектная функция для вас. Независимо от способа создания ROI свойства объекта, функции объекта и уведомления о событиях используются для настройки его внешнего вида и поведения. Дополнительные сведения об использовании этих возможностей см. в разделе Советы.

roi = drawcuboid(ax) создает Cuboid Объект ROI и позволяет интерактивно рисовать интересующую кубоидальную область (ROI) на осях, указанных ax вместо текущих осей (gca).

roi = drawcuboid(S) создает Cuboid Объект ROI и позволяет интерактивно рисовать интересующую кубоидальную область (ROI) на Scatter объект, указанный S. Во время интерактивного размещения кубоид привязывается к ближайшей точке, определенной Scatter объект.

roi = drawcuboid(___,Name,Value) изменяет внешний вид ROI, используя одну или несколько пар имя-значение.

Примеры

свернуть все

Создайте график рассеяния 3-D и в интерактивном режиме определите кубовидную окупаемость инвестиций над данными.

Определите векторы для 3-D данных рассеяния.

[x,y,z] = sphere(16);
X = [x(:)*.5 x(:)*.75 x(:)];
Y = [y(:)*.5 y(:)*.75 y(:)];
Z = [z(:)*.5 z(:)*.75 z(:)];

Укажите размер и цвет каждого маркера.

S = repmat([1 .75 .5]*10,numel(x),1);
C = repmat([1 2 3],numel(x),1);

Создайте график разброса 3-D. Использовать view для изменения угла осей на рисунке.

figure
hScatter = scatter3(X(:),Y(:),Z(:),S(:),C(:),'filled'); 
view(-60,60);

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

drawcuboid(hScatter);

Определите векторы для 3-D разрозненных данных.

[x,y,z] = sphere(16);
X = [x(:)*.5 x(:)*.75 x(:)];
Y = [y(:)*.5 y(:)*.75 y(:)];
Z = [z(:)*.5 z(:)*.75 z(:)];

Укажите размер и цвет каждого маркера.

S = repmat([1 .75 .5]*10,numel(x),1);
C = repmat([1 2 3],numel(x),1);

Создайте график рассеяния 3-D и используйте вид для изменения угла осей на рисунке.

figure
hScatter = scatter3(X(:),Y(:),Z(:),S(:),C(:),'filled'); 
view(-60,60);

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

roi = drawcuboid(hScatter,'Color','r'); 

Настройка прослушивателей для событий перемещения окупаемости инвестиций. При его перемещении ROI отправляет уведомления об этих событиях и выполняет указанную функцию обратного вызова.

addlistener(roi,'MovingROI',@allevents);
addlistener(roi,'ROIMoved',@allevents);

allevents функция обратного вызова отображает предыдущее положение и текущее положение ROI.

function allevents(src,evt)
    evname = evt.EventName;
    switch(evname)
        case{'MovingROI'}
            disp(['ROI moving previous position: ' mat2str(evt.PreviousPosition)]);
            disp(['ROI moving current position: ' mat2str(evt.CurrentPosition)]);
        case{'ROIMoved'}
            disp(['ROI moved previous position: ' mat2str(evt.PreviousPosition)]);
            disp(['ROI moved current position: ' mat2str(evt.CurrentPosition)]);
    end
end

Входные аргументы

свернуть все

Родительские оси окупаемости инвестиций, указанные как Axes объект или UIAxes объект. Для получения информации об использовании ROI в UIAxes, включая важные ограничения, см. раздел Использование ROI в приложениях, созданных с помощью App Designer.

График рассеяния, заданный как Scatter объект. Родитель Scatter объект становится родителем ROI.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: roi = drawcuboid('Color','k','Label','My Cuboid');

Цвет ROI, указанный как разделенная запятыми пара, состоящая из 'Color' и MATLAB ®ColorSpec (Color Specification) значение.

Пример: 'green'

Пример: 'g'

Пример: [0 1 0]

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

ROI может быть интерактивно удален через контекстное меню, указанное как пара, разделенная запятыми, состоящая из 'Deletable' и логическое значение true или false. Когда значение равно true (по умолчанию) можно удалить ROI с помощью контекстного меню. Чтобы отключить этот пункт контекстного меню, установите 'Deletable' кому false. Если установлено значение false, вы по-прежнему можете удалить ROI, позвонив delete , указывая дескриптор ROI в качестве входного значения.

Область осей, в которую можно в интерактивном режиме поместить ROI, заданная как разделенная запятыми пара, состоящая из 'DrawingArea' и одно из значений в этой таблице.

СтоимостьОписание
'auto'

Область рисования представляет собой супернабор текущих пределов осей и ограничивающую рамку, которая окружает ROI (по умолчанию).

'unlimited'Область рисования не имеет границ, и объекты ROI можно нарисовать или перетащить, чтобы выйти за пределы осей.
[x,y,z,w,h,d]Область рисования ограничена областью, начинающейся с (x, y, z), шириной w, высотой h и глубиной d.

Прозрачность края ROI, определяемая как разделенная запятыми пара, состоящая из 'EdgeAlpha' и скаляр в диапазоне [0 1]. Если установлено значение 1, край ROI полностью непрозрачен. Если установлено значение 0, край ROI полностью прозрачен.

Пример: drawcuboid('EdgeAlpha',0.2)

Прозрачность граней ROI, заданная как числовое скалярное значение в диапазоне [0 1]. Когда значение равно 1лица ROI полностью непрозрачны. Когда значение равно 0, лица ROI полностью прозрачны.

Прозрачность поверхности ROI непосредственно под указателем мыши, определяемая как разделенная запятыми пара, состоящая из 'FaceAlphaOnHover' и скалярное значение в диапазоне [0 1] или 'none' для обозначения отсутствия изменений прозрачности. Если установлено значение 1, грань под указателем мыши полностью непрозрачна. Если установлено значение 0, лицо полностью прозрачное.

Пример: drawcuboid('FaceAlphaOnHover',1)

Цвет грани ROI непосредственно под указателем мыши, определяемый как разделенная запятыми пара, состоящая из 'FaceColorOnHover' и MATLAB ColorSpec (Color Specification) или 'none'. По умолчанию цвет грани при наведении не изменяется. (Наведение означает расположение указателя над поверхностью кубовидной окупаемости инвестиций.) Когда вы не зависаете над лицом ROI, значение ROI Color свойство определяет цвет грани. Интенсивности должны находиться в диапазоне [0,1].

Пример: drawcuboid('FaceColorOnHover','g')

Видимость дескриптора окупаемости инвестиций в Children свойство родительского элемента, указанное как разделенная запятыми пара, состоящая из 'HandleVisibility' и одно из значений в этой таблице.

СтоимостьОписание
'on'Дескриптор объекта всегда виден (по умолчанию).
'off'Дескриптор объекта всегда скрыт.
'callback'Дескриптор объекта виден внутри обратных вызовов или функций, вызываемых обратными вызовами, но не внутри функций, вызываемых из командной строки.

Интерактивность ROI, определяемая как разделенная запятыми пара, состоящая из 'InteractionsAllowed' и одно из значений в этой таблице.

СтоимостьОписание
'all'ROI полностью взаимодействует (по умолчанию).
'none'ROI не взаимодействует, и точки перетаскивания не видны.
'translate'ROI может быть преобразован (перемещен) в пределах области рисования, но не изменен.

Метка ROI, указанная как разделенная запятыми пара, состоящая из 'Label' и символьный вектор или строку. По умолчанию для этого свойства установлен пустой массив ('') и ROI не имеет метки.

Прозрачность текстового фона, определяемая как разделенная запятыми пара, состоящая из 'LabelAlpha' и скалярное значение в диапазоне [0 1]. Если установлено значение 1, текстовой фон полностью непрозрачен. Если установлено значение 0, текстовой фон полностью прозрачен.

Цвет текста метки, заданный как разделенная запятыми пара, состоящая из 'LabelTextColor' и MATLAB ColorSpec (Color Specification) значение. Значения интенсивности должны находиться в диапазоне [0,1].

Видимость метки ROI, указанной как разделенная запятыми пара, состоящая из 'LabelVisible' и одно из этих значений.

СтоимостьОписание
'on'Метка отображается, когда отображается ROI, и Label свойство nonempty (по умолчанию).
'hover'

Метка отображается только при наведении курсора мыши на ROI.

'off'Метка не видна.

Ширина края ROI, заданная как разделенная запятыми пара, состоящая из 'LineWidth' и положительный числовой скаляр в точках. Значение по умолчанию в три раза превышает количество точек на пиксель экрана.

Родитель ROI, указанный как пара, разделенная запятыми, состоящая из 'Parent' и Axes или UIAxes объект. Сведения об использовании ROI в UIAxes, включая важные ограничения, см. в разделе Использование ROI в приложениях, созданных с помощью App Designer.

Положение кубоида, определяемое как разделенная запятыми пара, состоящая из 'Position' и массив 1 на 6 формы [xmin, ymin, zmin, ширина, высота, глубина]. Это свойство обновляется автоматически при рисовании или перемещении кубовида.

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

СтоимостьОписание
'all'ROI полностью вращается.
'x' ROI можно поворачивать только вокруг оси x
'y'ROI можно поворачивать только вокруг оси Y.
'z'ROI можно поворачивать только вокруг оси Z.
'none'Окупаемость инвестиций не может поворачиваться.

Угол поворота ROI, определяемый как разделенная запятыми пара, состоящая из 'RotationAngle' и 1 на 3 числовой массив углов поворота, измеренных в градусах. Массив углов поворота имеет вид [x_angle y_angle z_angle], измеренные относительно осей x, y и z соответственно. Поворот применяется относительно центроида ROI в следующем порядке: z, y, x.

Значение RotationAngle не влияет на значения в Position. Position представляет кубоид перед любым поворотом. При повороте кубоида используйте Vertices для определения местоположения повернутой окупаемости инвестиций.

Способность колеса прокрутки регулировать размер ROI, указанного как пара, разделенная запятыми, состоящая из 'ScrollWheelDuringDraw' и одно из значений в этой таблице.

СтоимостьОписание
'allresize'Колесо прокрутки влияет на все размеры окупаемости инвестиций.
'xresize' Колесо прокрутки воздействует только на размер x.
'yresize' Колесо прокрутки воздействует только на размер y.
'zresize' Колесо прокрутки воздействует только на размер z.
'none'Колесо прокрутки не имеет эффекта.

Состояние выбора ROI, определяемое как разделенная запятыми пара, состоящая из 'Selected' и true или false. Можно также установить это значение в интерактивном режиме. Например, при нажатии на ROI он выбирается и устанавливается в значение true. Аналогично, если щелкнуть ROI при нажатой клавише Ctrl, отменит выбор и установит для этого значения значение false.

Цвет ROI при выборе, указанный как разделенная запятыми пара, состоящая из 'SelectedColor' и MATLAB ColorSpec (Color Specification). Если 'SelectedColor' имеет значение 'none', то значение Color определяет цвет ROI для всех состояний, выбранных или нет.

Пример: 'green'

Пример: 'g'

Пример: [0 1 0]

Цвет полосы ROI, определяемый как разделенная запятыми пара, состоящая из 'StripeColor«и MATLAB» ColorSpec (Color Specification) значение. При указании 'StripeColor', край ROI полосатый. Чередование состоит из комбинации значений, указанных 'Color' и это значение.

Пример: 'green'

Пример: 'g'

Пример: [0 1 0]

Тег для связывания с ROI, указанный как пара, разделенная запятыми, состоящая из 'Tag' и вектор символов или строковый скаляр. Используйте значение тега для поиска объекта ROI в иерархии объектов с помощью findobj функция.

Данные для связывания с ROI, указанные как разделенная запятыми пара, состоящая из 'UserData' и любые данные MATLAB. Например, можно указать скаляр, вектор, матрицу, массив ячеек, строку, символьный массив, таблицу или структуру. MATLAB не использует эти данные.

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

Расположение углов кубовидной окупаемости инвестиций, заданной как массив 8 на 3. Каждая строка является координатой x, y и z угла кубовидной окупаемости инвестиций.

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

СтоимостьОписание
'on'Просмотрите ROI (по умолчанию).
'off'Скрыть ROI, не удаляя его. Вы по-прежнему можете получить доступ к свойствам невидимого ROI.

Выходные аргументы

свернуть все

Кубоидальная окупаемость инвестиций, возвращенная как Cuboid объект.

Совет

  • ROI поддерживает следующую интерактивность, включая сочетания клавиш.

    ПоведениеСочетание клавиш
    Точная настройка размера окупаемости инвестиций во время рисования.Используйте колесо прокрутки для внесения небольших изменений в размер окупаемости инвестиций во время рисования.
    Прекратите рисовать окупаемость инвестиций.Нажмите клавишу Esc. Функция возвращает допустимый объект ROI с пустым Position поле.
    Изменение размера (изменение формы) ROI.

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

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

    Переместите окупаемость инвестиций.

    Поместите указатель на любую из видимых поверхностей ROI и щелкните и перетащите при нажатии клавиши Shift.

    Поместите указатель на любую видимую поверхность окупаемости инвестиций, щелкните правой кнопкой мыши и выберите «Зафиксировать размеры». Щелкните и перетащите, чтобы переместить ROI.

    Удалите ROI.Наведите указатель на ROI и щелкните правой кнопкой мыши для просмотра его контекстного меню. Выберите в меню команду Удалить кубоид (Delete Cuboid). Можно также удалить ROI с помощью delete объектная функция.
  • drawcuboid функция возвращает Cuboid Объект окупаемости инвестиций. После создания используйте эти возможности объекта для настройки внешнего вида и поведения окупаемости инвестиций.

    • Свойства объекта - объекты ROI поддерживают свойства, изменяющие их внешний вид или поведение. Например, чтобы изменить цвет roi желтом, установите его Color собственность, roi.Color = 'yellow'.

    • Объектные функции - объекты ROI поддерживают набор объектных функций, которые работают с ROI. Например, если необходимо приостановить командную строку MATLAB после создания ROI, вызовите wait объектная функция.

    • Уведомления о событиях - объекты ROI могут уведомлять код, когда определенные события, такие как перемещение или щелчок, происходят с ROI. Для получения этих уведомлений используйте addlistener объектная функция для настройки прослушивателей для определенных событий. В прослушивателе укажите событие, например 'ROIMoved'и функцию обратного вызова, которая выполняется при возникновении события. Когда ROI уведомляет приложение через прослушиватель, он возвращает данные, относящиеся к событию. Например, с помощью 'ROIMoved' объект ROI возвращает свою предыдущую позицию и текущую позицию.

    Пример использования прослушивателей событий с Cuboid см. раздел Настройка прослушивателя для событий ROI Cuboid. Дополнительные сведения об этих возможностях см. в разделе Cuboid объектная документация.

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

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

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

Представлен в R2019a