Мне нужно рассчитать расстояние по сетке между 2 точками. Разрешенное движение является горизонтальным и вертикальным, а также диагональным для следующего соседа (так что вращение на 45 градусов).Рассчитать расстояние на сетке между двумя точками
Таким образом, расстояние Манхэттена не является вариантом. Кроме того, евклидово расстояние не является вариантом, поэтому оно не перемещается правильно вдоль сетки, что может привести к низкому значению (как в красной строке).
Я ищу, чтобы получить расстояние, как в зеленой линии, где он перемещается из ячейки в ячейку.
Предпочтительно, чтобы формула была быстрой.
Вы ищете длину зеленой линии или количество клеток, что зеленая линия проходит в этом примере? – binoternary
@binoternary, количество пропущенных ячеек всегда равно max (dx, dy) '. – aioobe
@aioobe, это правда, мне просто интересно, может ли это быть подходящим «расстоянием» в этом случае – binoternary