Я смотрю на эту проблему уже несколько дней. Я установил этот график, чтобы помочь мне визуализировать проблему: (из графика мы знаем, что линия пересекает [1, 1], [1, 2], [2, 2], [2, 3], заканчиваясь на [ 3,3])
Я хочу пройти по линии к каждому пространству сетки и проверить, является ли материал пространства сетки твердым. Я чувствую, что уже знаю, как работает математика, но я пока не смог ее связать. Я использую это для проверки прямой видимости и устранения узлов после того, как путь найден с помощью моих алгоритмов поиска пути - мои агенты не могут видеть сквозь сплошной блок, поэтому они не могут перемещаться через один, поэтому узел не исключается из пути, потому что он требуется для навигации по углу.
Итак, мне нужен алгоритм, который будет двигаться вдоль линии к каждому пространству сетки, которое он пересекает. Любые идеи?
Я рассмотрел множество распространенных алгоритмов, таких как алгоритм Брезенхэма, и алгоритм, который шагает с заранее заданными интервалами вдоль линии (к сожалению, этот метод пропускает плитки, если они пересекаются с меньшим клином, чем размер шага).
Сейчас я заполняю свою доску массой функций floor () и ceil (), но она становится слишком сложной, и я боюсь, что это может вызвать замедление.