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. The union функция поддерживает этот синтаксис только тогда, когда poly1 и poly2 являются скалярными polyshape объекты.

The 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 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.

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

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

См. также

| |

Введенный в R2017b