объединение

Объединение объектов polyshape

Синтаксис

polyout = union(poly1,poly2)
polyout = union(polyvec)
[polyout,shapeID,vertexID] = union(poly1,poly2)
[polyout,shapeID,vertexID] = union(polyvec)
___ = union(___,'KeepCollinearPoints',TF)

Описание

пример

polyout = union(poly1,poly2) возвращает объект polyshape, области которого являются объединением двух объектов polyshape. Объединение содержит объединенные области poly1 и poly2, который должен иметь совместимые размеры массивов.

пример

polyout = union(polyvec) возвращает объект polyshape, области которого являются геометрическим объединением всех объектов polyshape в векторном polyvec. Объединение содержит объединенные области объектов polyshape в polyvec.

пример

[polyout,shapeID,vertexID] = union(poly1,poly2) также возвращает информацию об отображении вершины в вершины в polyout к вершинам в poly1 и poly2. Функция union только поддерживает этот синтаксис, когда poly1 и poly2 являются скалярными объектами polyshape.

Элементы shapeID идентифицируют, была ли соответствующая вершина в polyout, порожденном в poly1, poly2, или, создана из объединения. vertexID сопоставляет вершины polyout к вершинам poly1, poly2 или объединения.

[polyout,shapeID,vertexID] = union(polyvec) возвращается информация об отображении вершины от polyvec до каждого элемента вектора polyshape возражает polyvec.

___ = union(___,'KeepCollinearPoints',TF) задает, сохранить ли или удалить коллинеарные точки в polyout для какого-либо из предыдущих синтаксисов.

Примеры

свернуть все

Создайте и постройте два полигона.

poly1 = polyshape([0 0 1 1],[1 0 0 1]);
poly2 = polyshape([0.75 1.25 1.25 0.75],[0.25 0.25 0.75 0.75]);
plot(poly1)
hold on
plot(poly2)

figure

Вычислите и постройте объединение poly1 и poly2.

polyout = union(poly1,poly2)
polyout = 
  polyshape with properties:

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

plot(polyout)
xlim([-0.2 1.4]);
ylim([-0.2 1.2]);

Создайте вектор полигонов и постройте каждый полигон.

polyarray1 = polyshape([0 0 1 1],[1 0 0 1]);
polyarray2 = polyshape([0.75 1.25 1.25 0.75],[0.25 0.25 0.75 0.75]);
poly1 = [polyarray1 polyarray2]
poly1 = 
  1x2 polyshape array with properties:

    Vertices
    NumRegions
    NumHoles

plot(poly1(1))
hold on
plot(poly1(2))

figure

Вычислите и постройте объединение этих двух полигонов.

polyout = union(poly1)
polyout = 
  polyshape with properties:

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

plot(polyout)
xlim([-0.2 1.4]);
ylim([-0.2 1.2]);

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

poly1 = polyshape([0 0 1 1],[1 0 0 1]);
poly2 = translate(poly1,[0.5 0]);
[polyout,shapeID,vertexID] = union(poly1,poly2);
plot(polyout)
axis equal

[polyout.Vertices shapeID vertexID]
ans = 4×4

         0    1.0000    1.0000    1.0000
    1.5000    1.0000    2.0000    2.0000
    1.5000         0    2.0000    3.0000
         0         0    1.0000    4.0000

Первые и последние вершины объединения, порожденного в poly1, начиная с соответствующих значений в shapeID, равняются 1. Эти вершины являются первыми и четвертыми вершинами в свойстве poly1.Vertices, соответственно, поскольку соответствующие значения в vertexID равняются 1 и 4. Точно так же вторые и третьи вершины объединения, порожденного в poly2, и они - вторые и третьи вершины в свойстве poly2.Vertices, соответственно.

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

свернуть все

Первый вход polyshape, заданный как скаляр, вектор, матрица или многомерный массив.

Второй вход polyshape, заданный как скаляр, вектор, матрица или многомерный массив.

Вектор polyshape.

Коллинеарный индикатор вершин, заданный как false или true:

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

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

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

  • Если значением был true для каждого входа polyshape, когда они были созданы, то значение для вывода polyshape установлено к true.

  • Если значением был false для каждого входа polyshape, когда они были созданы, то значение для вывода polyshape установлено к false.

  • Если значения для объектов входа polyshape не соответствуют, то значение для вывода polyshape установлено к false.

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

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

свернуть все

Выведите polyshape, возвращенный как скаляр, вектор, матрица или многомерный массив.

  • Если вы вводите два аргумента polyshape, то у них должны быть совместимые размеры. Например, если два вектора входа polyshape имеют различные длины M и N, то у них должны быть различные ориентации (нужно быть вектором - строкой, и нужно быть вектор-столбцом). polyout является затем M-by-N или N-by-M в зависимости от ориентации каждого входного вектора. Для получения дополнительной информации о совместимых размерах массивов смотрите Совместимые Размеры Массивов для Основных Операций.

  • Если вы предоставляете одному входному параметру polyvec, то polyout является скалярным объектом polyshape.

Сформируйте ID, возвращенный как вектор-столбец, элементы которого каждый представляет источник вершины в объединении.

  • Длина shapeID равна количеству строк в свойстве Vertices вывода polyshape.

  • Элементы shapeID зависят от количества входных параметров:

    • Если вы предоставляете двум входным параметрам poly1 и poly2, то они должны быть скалярными объектами polyshape. Значение элемента в shapeID 0, когда соответствующая вершина вывода polyshape была создана объединением. Элемент равняется 1, когда соответствующая вершина произошла из poly1, и 2, когда это произошло из poly2.

    • Если вы предоставляете одному входному параметру polyvec, который является вектором объектов polyshape, то shapeID содержит индекс элемента polyvec от который соответствующая выходная порожденная вершина. Значение элемента 0, когда соответствующая вершина была создана объединением.

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

ID вершины, возвращенный как вектор-столбец, элементы которого сопоставляют вершины в выводе polyshape к вершинам в polyshape источника. Элементы vertexID содержат номера строк соответствующих вершин в свойстве Vertices входа polyshape. Элемент 0, когда соответствующая вершина вывода polyshape была создана объединением.

Длина vertexID равна количеству строк в свойстве Vertices вывода polyshape. Если вы обеспечиваете два объекта входа polyshape, то union только поддерживает этот выходной аргумент, если они - скаляр.

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

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

| |

Введенный в R2017b