inShape

Определите, находится ли точка внутри альфа-формы

Описание

пример

tf = inShape(shp,qx,qy) возвращает логический 1 (true) значения для точек запроса 2-D (qx,qy) которые находятся 2-D альфа-форме shp. В противном случае inShape возвращает значения логических 0 (false). The qx и qy аргументы являются числовыми массивами, соответствующие элементы которых определяют (x,y) запросить координаты точки.

tf = inShape(shp,qx,qy,qz) проверяет, указывает ли запрос 3-D (qx,qy,qz) находятся внутри 3-D альфа-формы shp.

tf = inShape(shp,QP) задает 2-D или 3-D координаты точки запроса в матрице с 2 или 3 столбцами.

tf = inShape(___,RegionID) проверяет, находятся ли точки запроса в определенной области альфа-формы, используя любой из предыдущих синтаксисов. RegionID - идентификатор для области и 1RegionIDnumRegions(shp).

[tf,ID] = inShape(___) также возвращает идентификаторы областей альфа-формы, содержащих точки запроса. ID является NaN для точек запроса, которые не находятся в альфа-форме.

Примеры

свернуть все

Создайте набор 2-D точек.

th = (pi/12:pi/12:2*pi)';
x1 = [reshape(cos(th)*(1:5), numel(cos(th)*(1:5)),1); 0];
y1 = [reshape(sin(th)*(1:5), numel(sin(th)*(1:5)),1); 0];
x = [x1; x1+15;];
y = [y1; y1];

Создать и построить график альфа-формы можно используя альфа-радиус 2,5.

shp = alphaShape(x,y,2.5);
plot(shp)

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

Создайте декартову сетку точек запроса рядом с альфа-формой.

[qx, qy] = meshgrid(-10:2:25, -10:2:10);

Проверьте, находятся ли точки запроса внутри альфа-формы, и если да, постройте график красного цвета. Постройте график точек запроса, которые находятся вне альфа-формы, синим цветом.

in = inShape(shp,qx,qy);
plot(shp)
hold on
plot(qx(in),qy(in),'r.')
plot(qx(~in),qy(~in),'b.')

Figure contains an axes. The axes contains 3 objects of type patch, line.

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

свернуть все

Альфа-форма, заданная как alphaShape объект. Для получения дополнительной информации см. alphaShape.

Пример: shp = alphaShape(x,y) создает 2-D alphaShape объект из (x,y) координаты точек.

Запросите координаты точки X, заданные как числовой массив.

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

Точка запроса y-координаты, заданный как числовой массив.

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

Запросите координаты точки Z, заданные как числовой массив.

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

Запросите координаты точки, заданные как матрица с двумя столбцами (2-D) или матрица с тремя столбцами (3D).

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

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

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

Идентификационный номер для области в альфа-форме, заданный как положительный целочисленный скаляр между 1 и numRegions(shp).

Альфа-форма может содержать несколько небольших областей, в зависимости от набора точек и параметров. Каждой из этих небольших областей присваивается уникальное RegionID, который определяет области от наибольшей площади или объема до наименьших. Например, рассмотрим 3-D альфа-форму с двумя областями. У области с наибольшим объемом есть RegionID 1, и меньшая область имеет RegionID от 2.

Пример: shp.RegionThreshold = area(shp,numRegions(shp)-2); подавляет две наименьшие области в 2-D альфа-форме shp.

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

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

свернуть все

Состояние точек запроса, возвращаемое как логический массив. Размер tf равен размеру входов, задающих точки запроса (qx, qy, qz, или QP).

inShape возвращает логический 1 (true) значения для точек, которые находятся внутри альфа-формы или точно на контуре.

Идентификаторы областей, содержащих точки запроса, возвращенные в виде числового массива. ID - тот же размер, что и tf.

См. также

|

Введенный в R2014b