(не рекомендуется) Создание многоугольника с возможностью перетаскивания и изменения размера
impoly не рекомендуется. Использовать новый Polygon вместо этого объект. Также можно использовать новую функцию удобства создания ROI. drawpolygon. Другой вариант - Polyline объект, позволяющий создать разомкнутый многоугольник или форму полилинии. Дополнительные сведения см. в разделе Вопросы совместимости.
Один impoly объект инкапсулирует интерактивный многоугольник поверх изображения.
С помощью мыши можно добавить вершины и настроить размер и положение многоугольника. Полигон также имеет контекстное меню, которое управляет аспектами его внешнего вида и поведения. Дополнительные сведения см. в разделе Использование.
h = impoly начинает интерактивное размещение многоугольника на текущих осях и возвращает impoly объект.
h = impoly( начинает интерактивное размещение многоугольника на объекте, указанном hparent)hparent.
h = impoly(___, задает пары «имя-значение», которые управляют поведением многоугольника.Name,Value)
При звонке impoly в интерактивном синтаксисе указатель изменяется на перекрестие
, когда он располагается над изображением. Щелкните и перетащите мышь, чтобы определить вершины многоугольника и скорректировать размер, форму и положение многоугольника. По умолчанию impoly рисует прямую линию, соединяющую последнюю нарисованную точку с первой точкой, но управлять этим поведением можно с помощью Closed параметр.
Полигон также поддерживает контекстное меню, которое можно использовать для управления аспектами его внешнего вида и поведения. Выбор в контекстном меню зависит от расположения указателя на ребре многоугольника (или в любом месте внутри области) или на одной из вершин. На рисунке показано контекстное меню, когда указатель находится на многоугольнике, но не на вершине.

В таблице перечислены интерактивные варианты поведения, поддерживаемые impoly.
| Интерактивное поведение | Описание |
|---|---|
| Закрытие полигона. | Используйте любой из следующих механизмов:
|
| Добавление новой вершины. | Наведите указатель на кромку многоугольника. Нажмите и удерживайте клавишу A. Форма указателя изменяется. |
| Перемещение вершины. (Изменение формы многоугольника.) | Наведите указатель на вершину. Указатель изменяется на круг. |
| Удаление вершины. | Наведите указатель на вершину. Форма изменяется на окружность. |
| Удаление полигона | Переместите указатель внутрь многоугольника или на одну из линий, определяющих многоугольник, а не на вершину. Щелкните правой кнопкой мыши и выберите в контекстном меню команду «Удалить». Чтобы удалить этот параметр из контекстного меню, установите Deletable свойство false: h = impoly(); h.Deletable = false; |
| Перемещение многоугольника. | Переместите указатель внутрь полигона. Указатель принимает форму флера. |
| Изменение цвета многоугольника | Переместите указатель внутрь полигона. Щелкните правой кнопкой мыши и выберите в контекстном меню «Задать цвет». |
| Получение координат вершин | Переместите указатель внутрь полигона. Щелкните правой кнопкой мыши и выберите «Копировать положение» в контекстном меню. impoly копирует массив n-by-2, содержащий координаты x и y каждой вершины, в буфер обмена. n - указанное число вершин. |
Каждый impoly объект поддерживает ряд методов. Напечатать methods impoly для просмотра полного списка.
addNewPositionCallback | Добавление обратного вызова новой позиции к объекту ROI |
createMask | Создание маски в изображении |
delete | Удалить объект-дескриптор |
getColor | Получение цвета, используемого для рисования объекта ROI |
getPosition | Возврат текущего положения объекта ROI |
getPositionConstraintFcn | Вернуть дескриптор функции в функцию ограничения текущего положения |
removeNewPositionCallback | Удаление обратного вызова новой позиции из объекта ROI |
resume | (Не рекомендуется) Возобновить выполнение командной строки MATLAB |
setClosed | Задать поведение закрытия объекта ROI |
setColor | Задать цвет, используемый для рисования объекта ROI |
setConstrainedPosition | Установка объекта ROI в новое положение |
setPosition | (Не рекомендуется) Переместить объект окупаемости инвестиций в новое положение |
setPositionConstraintFcn | Установка функции ограничения положения объекта ROI |
setVerticesDraggable | Задание поведения вершины объекта ROI |
wait | (Не рекомендуется) Блокировать командную строку MATLAB до завершения создания ROI |
Если вы используете impoly с осями, содержащими объект изображения и не задающими функцию ограничения положения, пользователи могут перетащить многоугольник за пределы изображения и потерять многоугольник. При использовании с осями, созданными plot при перетаскивании многоугольника за пределы осей автоматически расширяются границы осей.