addboundary

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

Описание

пример

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)

Figure contains an axes. The axes contains an object of type polygon.

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

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

plot(polyout)

Figure contains an axes. The axes contains an object of type polygon.

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

свернуть все

Входные 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 - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

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

Ориентация границы, заданная как разделенная разделенными запятой парами, состоящая из 'SolidBoundaryOrientation' и одно из следующих значений:

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

| |

Введенный в R2017b