найти все точки в диапазоне к любой точке другого набора

У меня есть два набора точек А и Б.

Я хочу найти все точки в B которые находятся в определенном диапазоне г кгде точка б в Б Говорят, что в пределах диапазона г к если есть хотя бы одна точка в чье (евклидово) расстояние до б равно или меньше r.

Каждый из обоих наборов точек является согласованным набором точек. Они генерируются из местоположений вокселей двух непересекающихся объектов.

В 1D эта проблема довольно проста: все точки B в течение [мин (А)-р макс (А) + Г]

Но я в 3D.

Каков наилучший способ сделать это?

В настоящее время я постоянно ищу каждую точку в все точки в B что в пределах диапазона, используя некоторый алгоритм KNN (то есть. Matlab 's rangesearch), а затем объединить все эти наборы. Но у меня возникло ощущение, что должен быть лучший способ сделать это. Я'я бы предпочел высокоуровневое / векторизованное решение в matlab, но псевдокод тоже подойдет :)

Я также подумал о том, чтобы написать все точки для изображений и использовать расширение изображений на объекте A с радиусом r. Но это звучит как накладные расходы.

Ответы на вопрос(3)

Ваш ответ на вопрос