inShape

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

Описание

пример

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

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

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

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

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

Примеры

свернуть все

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

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)

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

[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.')

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

|

Введенный в R2014b