union

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

Описание

пример

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 порожденный в poly1poly2 , или был создан из объединения. vertexID сопоставляет вершины polyout к вершинам poly1poly2 , или объединение.

[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 contains an axes. The axes contains 2 objects of type polygon.

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]);

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

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

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 contains an axes. The axes contains 2 objects of type polygon.

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]);

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

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

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

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

[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:

  • false — Удалите коллинеарные точки так, чтобы выход 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