inShape

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

Синтаксис

tf = inShape(shp,qx,qy)
tf = inShape(shp,qx,qy,qz)
tf = inShape(shp,QP)
tf = inShape(___,RegionID)
[tf,ID] = inShape(___)

Описание

пример

tf = inShape(shp,qx,qy) возвращает логический 1 (true) значения для 2D точек запроса (qx,qy), которые являются в 2D альфа-форме shp. В противном случае inShape возвращает значения логического 0 (false). Аргументы 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 является NaN для точек запроса, которые не находятся в альфа-форме.

Примеры

свернуть все

Создайте набор 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 представляют x, y и координаты z, соответственно.

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

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

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

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

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

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

свернуть все

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

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

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

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

|

Введенный в R2014b

Для просмотра документации необходимо авторизоваться на сайте