Задать вопрос
@dyrtage

Как найти ближайшие точки на координатной плоскости?

Есть координатная плоскость 10 на 10. На ней расположены рандомным образом точки. Их координаты могут быть: (1, 3); (4, 2) и т.п. Допустим есть точка с координатами (4, 5). Как найти ближайшее к нему 3 точки?
  • Вопрос задан
  • 526 просмотров
Подписаться 1 Простой 2 комментария
Решение пользователя Vindicar К ответам на вопрос (2)
Vindicar
@Vindicar
RTFM!
Координаты строго целочисленные?
Тогда обходи точки с помощью алгоритма floodfill, с центром в исходной точке.
Например, для небольшого участка порядок будет таким:
5 4 3 4 5
4 2 1 2 4
3 1 X 1 3
4 2 1 2 4
5 4 3 4 5

Цифра - на какой итерации проверяются эти позиции.
Т.е. сначала проверяешь соседние с исходной, потом соседние с ними, потом соседние с теми, и так далее.
Если в позиции есть точка, добавляешь её в список найденных. Когда в списке найденных набралось 3 точки, останавливаешься.
Ответ написан