znajdź wszystkie punkty w zasięgu do dowolnego punktu innego zestawu
Mam dwa zestawy punktówA iB.
Chcę znaleźć wszystkie punktyB które są w pewnym zakresier doA, gdzie punktb wB mówi się, że znajduje się w zasięgur doA jeśli jest przynajmniej jeden punkta wA którego (Euklidesowa) odległość dob jest równy lub mniejszy niż r.
Każdy z obu zestawów punktów jest spójnym zbiorem punktów. Są one generowane z lokalizacji wokseli dwóch nie nakładających się obiektów.
W 1D ten problem jest dość prosty: wszystkie punktyB w ciągu [min (A) -r max (A) +r]
Ale jestem w 3D.
Jak najlepiej to zrobić?
Obecnie powtarzalnie szukam każdego punktu wA wszystkie punkty wB które w zasięgu używają algorytmu knn (np. matlab's rangesearch), a następnie łączą wszystkie te zestawy. Ale mam wrażenie, że powinien być lepszy sposób na zrobienie tego. W matlab wolałbym rozwiązanie wysokiego poziomu / wektoryzacji, ale pseudo kod też jest w porządku :)
Pomyślałem też o zapisaniu wszystkich punktów na obrazach i użyciu rozszerzenia obrazu na obiekcie A o promieniu r. Ale to brzmi jak nadmiar.