xor

Исключающее ИЛИ двух polyshape объекты

Описание

пример

polyout = xor(poly1,poly2) возвращает polyshape возразите, чьи области являются геометрическим исключающим ИЛИ двух polyshape объекты. Геометрическое исключающее ИЛИ содержит области poly1 и poly2 это не перекрывается. poly1 и poly2 должен иметь совместимые размеры массивов.

пример

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

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

___ = xor(poly1,poly2,'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 = xor(poly1,poly2)
polyout = 
  polyshape with properties:

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

plot(polyout)

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] = xor(poly1,poly2);
plot(polyout)

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

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

         0    1.0000    1.0000    1.0000
    0.5000    1.0000    2.0000    1.0000
    0.5000         0    2.0000    4.0000
         0         0    1.0000    4.0000
       NaN       NaN       NaN       NaN
    1.0000    1.0000    1.0000    2.0000
    1.5000    1.0000    2.0000    2.0000
    1.5000         0    2.0000    3.0000
    1.0000         0    1.0000    3.0000

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

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

свернуть все

Первый вход 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 в зависимости от ориентации каждого входного вектора. Для получения дополнительной информации о совместимых размерах массивов смотрите Совместимые Размеры Массивов для Основных Операций.

Сформируйте ID, возвращенный как вектор-столбец, элементы которого каждый представляет источник вершины в исключающем ИЛИ. Значение элемента в shapeID 0 когда соответствующая вершина выхода polyshape был создан исключающим ИЛИ. Элемент равняется 1 когда соответствующая вершина, порожденная из poly1, и 2, когда это произошло из poly2.

Длина shapeID равно количеству строк в Vertices свойство выхода polyshape. xor функционируйте только поддерживает этот выходной аргумент если вход polyshape объекты являются скаляром.

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

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

Длина vertexID равно количеству строк в Vertices свойство выхода polyshape. xor функционируйте только поддерживает этот выходной аргумент когда вход polyshape объекты являются скаляром.

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

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

|

Введенный в R2017b