exponenta event banner

союз

Союз 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 возникла в 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-на-N или N-на-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