контур

Контур набора точек в 2D или 3-D

Синтаксис

k = boundary(x,y)
k = boundary(x,y,z)
k = boundary(P)
k = boundary(___,s)
[k,v] = boundary(___)

Описание

пример

k = boundary(x,y) возвращает вектор индексов точки, представляющих единственный соответствующий 2D контур вокруг точек (x,y). Точки форма (x(k),y(k)) контур. В отличие от выпуклой оболочки, контур может уменьшиться к внутренней части оболочки, чтобы окутать точки.

пример

k = boundary(x,y,z) возвращает триангуляцию, представляющую единственный соответствующий 3-D контур вокруг точек (x,y,z). Каждая строка k является треугольником, заданным с точки зрения индексов точки.

пример

k = boundary(P) задает, указывает (x,y) или (x,y,z) в столбцах матричного P.

пример

k = boundary(___,s) задает фактор уменьшения s с помощью любого из предыдущих синтаксисов. s является скаляром между 0 и 1. Установка s к 0 дает выпуклую оболочку, и установка s к 1 дает компактный контур, который окутывает точки. Фактором уменьшения по умолчанию является 0.5.

пример

[k,v] = boundary(___) также возвращает скалярный v, который является (2D) областью или объем (3-D), какой контур k заключает.

Примеры

свернуть все

Создайте и постройте график набора случайных 2D точек.

x = gallery('uniformdata',30,1,1);
y = gallery('uniformdata',30,1,10);
plot(x,y,'.')
xlim([-0.2 1.2])
ylim([-0.2 1.2])

Вычислите контур вокруг точек с помощью фактора уменьшения по умолчанию.

k = boundary(x,y);
hold on;
plot(x(k),y(k));

Создайте новый контур вокруг точек с помощью фактора уменьшения 0,1. Результатом является менее компактный контур, окутывающий точки.

j = boundary(x,y,0.1);
hold on;
plot(x(j),y(j));

Создайте и постройте график набора случайных 3-D точек.

P = gallery('uniformdata',30,3,5);
plot3(P(:,1),P(:,2),P(:,3),'.','MarkerSize',10)
grid on

Постройте график контура с помощью фактора уменьшения по умолчанию.

k = boundary(P);
hold on
trisurf(k,P(:,1),P(:,2),P(:,3),'Facecolor','red','FaceAlpha',0.1)

Создайте и постройте график набора случайных 3-D точек.

P = gallery('uniformdata',30,3,8);
plot3(P(:,1),P(:,2),P(:,3),'.')
grid on

Вычислите два контура: один с фактором уменьшения 0 и другой с фактором уменьшения 1.

k = boundary(P,0);
j = boundary(P,1);

Сравните факторы уменьшения путем графического изображения исходных точек и этих двух контуров бок о бок.

subplot(1,2,1);
plot3(P(:,1),P(:,2),P(:,3),'.','MarkerSize',10)
hold on
trisurf(k,P(:,1),P(:,2),P(:,3),'FaceColor','red','FaceAlpha',0.1)
axis equal
title('Shrink Factor = 0')

subplot(1,2,2);
plot3(P(:,1),P(:,2),P(:,3),'.','MarkerSize',10)
hold on
trisurf(j,P(:,1),P(:,2),P(:,3),'FaceColor','red','FaceAlpha',0.1)
axis equal
title('Shrink Factor = 1')

Создайте и постройте график набора случайных 3-D точек.

P = gallery('uniformdata',30,3,1);
plot3(P(:,1),P(:,2),P(:,3),'.')
grid on

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

[~, vol] = boundary(P);
vol
vol = 0.3012

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

свернуть все

x-координаты точек, заданных как вектор - столбец.

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

y-координаты точек, заданных как вектор - столбец.

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

z-координаты точек, заданных как вектор - столбец.

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

Укажите координаты, заданные как матрица с двумя столбцами (для 2D альфа-формы) или матрица с тремя столбцами (для 3-D альфа-формы).

  • Для 2D столбцы P представляют x и координаты y, соответственно.

  • Для 3-D столбцы P представляют x, y и координаты z, соответственно.

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

Фактор уменьшения, заданный как скаляр в области значений [0,1].

  • s = 0 соответствует выпуклой оболочке точек.

  • s = 1 соответствует самому трудному контуру единственной области вокруг точек.

Фактором уменьшения по умолчанию является 0.5. Задайте больший или меньший фактор уменьшения, чтобы сжать или ослабить контур вокруг точек, соответственно.

Пример: k = контур (x, y, 0.76) задает фактор уменьшения 0,76, производя более трудный контур, чем значение по умолчанию.

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

свернуть все

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

  • Для 2D проблем k является вектором - столбцом индексов точки, представляющих последовательность точек вокруг контура, который является полигоном.

  • Для 3-D проблем k является матрицей триангуляции размера mtri-by-3, где mtri является количеством треугольных фасетов на контуре. Каждая строка k задает треугольник с точки зрения индексов точки, и треугольники коллективно формируют многогранник ограничения.

Область или объем, заключенный контуром, возвращенным как скаляр.

  • Для 2D проблем v является областью, заключенной контуром k.

  • Для 3-D проблем v является объемом, заключенным контуром k.

Введенный в R2014b

Была ли эта тема полезной?