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

У меня есть 2-е точки (x, y) с координатами плавающими, когда я тяну их, я должен сгруппировать точки, если они друг близко к другу, и они должны быть сгруппированы iwith справка прямоугольника с фиксированным размером. И проблема состоит в том, что эти прямоугольники не должны пересекаться, и все соседи точек должны быть сгруппированы.
Если у Вас есть статья поблизости, можно потянуть большой прямоугольник, например, 4*5 см - область, где все точки расположены. Теперь случайным образом поместите точки, и скажем, если существуют точки, расстояние которых составляет 1 см - они должны быть сгруппированы в прямоугольнике 2*3.

Я не могу найти алгоритм, как сделать его, и производительность имеет значение также... Я искал вложение, кластеризируясь, но в чем я нуждаюсь, немного отличается. И между прочим, если некоторые группирующиеся прямоугольники должны быть вне общей зоны для установки условиям, позвольте ей быть, это не проблема. Например, у Вас есть область 4*5 и точки

(1,0), (2,1), (4,1), (4,3), (2,4) 

затем результат хотел бы rectangles (0,0 - 3,2) & (3,1 - 6,3) and one point left (2,4) потому что вся другая точка была сгруппирована, и эта точка не имеет никаких соседей теперь.
Координаты моих точек не являются целым числом, но плаванием, и количество точек может быть небольшим количеством сотни (до 500). И я не хочу повреждать область на тех же прямоугольниках и просто вычислять, сколько точки там, я имею в виду, например, выше, я мог сделать reactangles (0,0 - 3,2), (3,0 - 6,2), (0,3 - 3,6), (3,3 - 6,6) и просто подвести итог, точки 2 для первого реагируют, 1(!) для второго, что средства оставляют им, как это, 1 для трети, и 1 для 4-го => каждый реагирует, будет оттянут, и все другие точки => неправильно заканчиваются согласно задаче. Какие-либо идеи? По крайней мере, какие алгоритмы могут быть полезными, где искать...

P.S. на данный момент количество групп/точек в результате не имеет значения, e.i. другой позволенный результат, например, выше мог быть (1,0-4,2) и (2,2-5,4) прямоугольники и никакие оставленные точки

7
задан Jk1 6 July 2014 в 09:48
поделиться

1 ответ

Общая проблема заключается в поиске « ближайший сосед ». Решения сложны в вычислительном отношении (временная сложность). То, что является довольно простой задачей для людей, не так просто с вычислительной точки зрения.

1
ответ дан 7 December 2019 в 20:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: