Как найти все точки непосредственно рядом с точкой? - PullRequest
0 голосов
/ 07 августа 2020

У меня есть набор координат. Я ищу способ получить всех окружающих соседей по заданной координате. Я ищу все точки, которые находятся непосредственно рядом с ним, так что вам не нужно "путешествовать" через другую точку, чтобы добраться туда.

Первоначально я пробовал это только с K-ближайшими соседями, но он дает каждую ближайшую точку, даже если она не находится непосредственно рядом с вами

Пример:

Если у меня есть такая сетка координат:

A
                      E
             C   D
      B
      F

Я хочу результат такой, что если вы A, вы вернете B. Я не могу go в C или F, так как B находится на пути

В B вы возвращаете A, C и F

В C вы возвращаете B и D

В D вы возвращаете C и E

В E вы возвращаете D

Есть ли имя алгоритма, который действует так? Или какой-нибудь метод, которым я могу воспользоваться?

1 Ответ

0 голосов
/ 08 августа 2020

Сначала получите максимальную координату, скажем (3,4) при условии, что это индексирование 0, затем создайте 2-мерную матрицу (сетку) размером max + 1, в нашем случае (4,5), и заполните свои координаты .

Чтобы получить соседей определенной координаты, двигайтесь во всех 4 направлениях и выберите первого соседа, который вы найдете в каждом направлении.

Примечание: не забудьте инициализировать свою 2-мерную матрицу со значением по умолчанию значение, поможет вам в поиске соседей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...