nearestNeighbor

Определение самой близкой alphaShape граничной точки

Описание

I = nearestNeighbor(shp,qx,qy), поскольку 2D альфа формирует shp, возвращает индексы точек на контуре shp самый близкий к точкам запроса. I массив самых близких соседних индексов, где каждый индекс соответствует индексу строки в shp.Points. qx и qy координаты запроса должны быть одного размера.

I = nearestNeighbor(shp,qx,qy,qz), для 3-D альфа-формы, возвращает индексы граничных точек shp самый близкий к (qx,qy,qz) и соответствует индексам строки в shp.Points. qxqy , и qz координаты запроса должны быть одного размера.

пример

I = nearestNeighbor(shp,QP) задает точки запроса как матричный QP. Для 2D альфа-формы, QP матрица с двумя столбцами, представляющими qx и qy координаты. Для 3-D альфа-формы, QP имеет три столбца, представляющие qxqy , и qz координаты.

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

[I,D] = nearestNeighbor(___) дополнительно возвращает Евклидово расстояние между точкой запроса и ее самым близким соседом. D имеет тот же размер как I.

Примеры

свернуть все

Создайте набор 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];

Создайте и постройте альфа-форму с альфа-радиусом, равным 1.

shp = alphaShape(x,y,1);
plot(shp)
hold on

Вычислите самый близкий shp граничная точка к точке запроса QP. Постройте точку запроса синего цвета и самого близкого граничного соседа в красном.

QP = [6 3];
plot(QP(1),QP(2),'b.','MarkerSize',10)
hold on
I = nearestNeighbor(shp, QP);
plot(shp.Points(I,1),shp.Points(I,2),'r.','MarkerSize',10)

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

Самые близкие соседние индексы, возвращенные как массив с целочисленным знаком. Индексы соответствуют индексу строки shp.Points и укажите на точки на контуре shp это является самым близким к данным точкам запроса.

Расстояние от точек запроса до самых близких соседей, возвращенных как числовой массив. D 2D или 3-D Евклидово расстояние и одного размера с I.

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

Представленный в R2015a