Singerofthefall
@Singerofthefall

Как определить, к какому из узлов сетки ближе точка?

Имеется координатная сетка с определенным шагом, скажем, a (шаг одинаков и по горизонтали и по вертикали). Имеется также некоторая точка P с координатами (x,y). Как лучше всего определить координаты узла сетки, который для этой точки будет ближайшим?


Выглядит это примерно так — я получаю координаты клика мышкой (цветные точки на белом фоне на картинке), и мне нужно найти ближайший к ним узел (точки соответствующего цвета в узлах на картинке):
4960d762e040457e5ce412f59d2bd4b2.jpg


Единственное что пришло мне в голову — это делить координаты точки на шаг сетки; таким образом мы получим координаты узла левее (ось x возрастает слева направо) и ниже (ось y возрастает снизу вверх) нашей точки, а затем перебирать 4 ближайших узла и тупо сравнивать разницу в координатах. Подскажите более удачный способ, пожалуйста.
  • Вопрос задан
  • 3784 просмотра
Решения вопроса 1
bay73
@bay73
Если mod(x, a) < a/2, то ближе к левой стороне, чем к правой.
Если mod(y,a) < a/2, то ближе к нижней, чем к верхней
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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