addboundary

Добавьте контур polyshape

Синтаксис

polyout = addboundary(polyin,x,y)
polyout = addboundary(polyin,P)
polyout = addboundary(polyin,{x1,x2,...,xM},{y1,y2,...,yM})
polyout = addboundary(___,Name,Value)

Описание

пример

polyout = addboundary(polyin,x,y) возвращает объект polyshape, который составлен из существующего polyshape плюс дополнительный контур, заданный x - координатами и y - координаты, содержавшиеся в векторах x и y.

polyout = addboundary(polyin,P) добавляет контур, заданный координатами, содержавшимися в N-by-2 матричный P, где N является количеством вершин.

polyout = addboundary(polyin,{x1,x2,...,xM},{y1,y2,...,yM}) добавляют контуры M, где векторы x - координируют для каждого контура, перечислены вместе в массиве ячеек. Соответствующие векторы y - координаты также перечислены вместе в массиве ячеек. Каждый xi должен иметь ту же длину как соответствующий yi, но количество вершин может отличаться среди контуров.

polyout = addboundary(___,Name,Value) задает дополнительные параметры для добавления контуров к polyshape для любого из предыдущих синтаксисов.

Примеры

свернуть все

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

polyin = polyshape([0 0 1 1],[0 0.5 0.5 0])
polyin = 
  polyshape with properties:

      Vertices: [4x2 double]
    NumRegions: 1
      NumHoles: 0

plot(polyin)

polyout = addboundary(polyin,[2 3 2.5],[2 2 3])
polyout = 
  polyshape with properties:

      Vertices: [8x2 double]
    NumRegions: 2
      NumHoles: 0

plot(polyout)

Входные параметры

свернуть все

Введите polyshape, заданный как скаляр.

Типы данных: polyshape

x- граничных вершин, заданных как вектор. Можно представлять координаты нескольких контуров одновременно путем размещения NaN между каждым контуром. Например, polyout = addboundary(polyin,[0 0 1 NaN 1 5 5],[1 0 0 NaN 5 5 1]) возвращает объект polyshape, составленный из polyin плюс два дополнительных треугольника.

Числовые входные вершины, которые не имеют типа double, автоматически преобразованы, чтобы ввести double.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

y- граничных вершин, заданных как вектор. Можно представлять координаты нескольких контуров одновременно путем размещения NaN между каждым контуром. Например, polyout = addboundary(polyin,[0 0 1 NaN 1 5 5],[1 0 0 NaN 5 5 1]) возвращает объект polyshape, составленный из polyin плюс два дополнительных треугольника.

Числовые входные вершины, которые не имеют типа double, автоматически преобразованы, чтобы ввести double.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Граничные вершины, заданные как матрица с 2 столбцами. Первый столбец P содержит x - координаты вершин, и второй столбец содержит y - координаты. P должен иметь по крайней мере 3 строки.

Можно представлять координаты нескольких контуров одновременно путем размещения NaN между каждым контуром. Например, polyout = addboundary(polyin,[1 0; 0 0; 0 1; NaN NaN; 1 5; 5 5; 5 1]) возвращает объект polyshape, составленный из polyin плюс два дополнительных треугольника.

Числовые входные вершины, которые не имеют типа double, автоматически преобразованы, чтобы ввести double.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

x- для контуров M, заданных как массив ячеек векторов. Длина каждого xi может отличаться, но должна совпадать с длиной соответствующего вектора yi.

Числовые входные вершины, которые не имеют типа double, автоматически преобразованы, чтобы ввести double.

Типы данных: cell

y- контуров M, заданных как массив ячеек векторов. Длина каждого yi может отличаться, но должна совпадать с длиной соответствующего вектора xi.

Числовые входные вершины, которые не имеют типа double, автоматически преобразованы, чтобы ввести double.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: polyout = addboundary(polyin,x,y,'SolidBoundaryOrientation','ccw')

Граничная ориентация, заданная как пара, разделенная запятой, состоящая из 'SolidBoundaryOrientation' и одно из этих значений:

  • 'auto' Автоматически выберите ориентацию вершины как по часовой стрелке или против часовой стрелки для твердых контуров.

  • 'cw' — Обработайте по часовой стрелке ориентацию вершины как твердый контур.

  • 'ccw' — Обработайте против часовой стрелки ориентацию вершины как твердый контур.

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

Изменение вершины, заданное как пара, разделенная запятой, состоящая из 'Simplify' и одно из этих значений:

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

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

Типы данных: логический

Коллинеарные вершины, заданные как пара, разделенная запятой, состоящая из 'KeepCollinearPoints' и одно из следующего:

  • ложь Удалите коллинеарные точки так, чтобы вывод polyshape содержал наименьшее количество вершин, необходимых, чтобы задать контуры.

  • tRUE Сохраните все коллинеарные точки как вершины.

Когда 'KeepCollinearPoints' не задан, его значение автоматически установлено к значению, используемому при создании входа polyshape.

Типы данных: логический

Смотрите также

| |

Введенный в R2017b