exponenta event banner

sortboundaries

Вид polyshape границы

Описание

пример

polyout = sortboundaries(polyin,criterion,direction) возвращает polyshape объект, границы которого отсортированы по указанному criterion и direction. Например, polyout = sortboundaries(polyin,'area','ascend') возвращает polyshape границы которых такие же, как polyin. polyout перечисляет границы в порядке возрастания по их площади.

polyout = sortboundaries(polyin,'centroid',direction,'ReferencePoint',point) возвращает polyshape границы которых сортируются на основе расстояния центроида каждой границы до опорной точки.

Примеры

свернуть все

Отсортируйте границы многоугольника в соответствии с их количеством сторон, чтобы одновременно получить доступ к одной границе.

Создайте многоугольник, содержащий две границы: одну с тремя сторонами и одну с четырьмя сторонами.

x1 = [0 1 1 0];
y1 = [0 0 1 1];
x2 = [2 3 2.5];
y2 = [2 2 3];
polyin = polyshape({x1,x2},{y1,y2});
plot(polyin)

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

Сортировать границы в порядке убывания в соответствии с их количеством сторон, чтобы четырехсторонняя граница индексировалась первой в выходных данных. polyshape объект.

polyout = sortboundaries(polyin,'numsides','descend');

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

[x,y] = boundary(polyout,1)
x = 5×1

     0
     0
     1
     1
     0

y = 5×1

     0
     1
     1
     0
     0

area(polyout,1)
ans = 1

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

свернуть все

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

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

Критерий сортировки, указанный как одно из следующих значений:

  • 'area' - Сортировка по граничной области.

  • 'perimeter' - Сортировка по периметру границы.

  • 'numsides' - сортировка по количеству сторон каждой границы.

  • 'centroid' - сортировка по расстоянию от центроида каждой границы до опорной точки (0,0).

Направление сортировки, указанное как 'ascend' или 'descend'.

Опорная точка, заданная как двухэлементный вектор строки. Первый элемент является координатой X опорной точки, а второй элемент - координатой Y.

Представлен в R2017b