Поиск пути на основе полигонов - PullRequest
8 голосов
/ 28 сентября 2011

Я реализовал основанный на сетке A * pathfindinder в Java.Я хотел бы создать навигационный указатель на основе сетки / многоугольника, но у меня проблема в следующем:

basic polygon map with possible routes

Если бы я нашел оранжевый маршрут, то я мог бы использовать что-то вроде алгоритм воронки , чтобы выправить его, чтобы получить нужный маршрут (синий).Однако, если программа рассчитает стоимость каждого из маршрутов, красного и оранжевого, то будет сказано, что красный - дешевле.Как мне запрограммировать алгоритм A * и / или создать меши, чтобы этого не происходило.

Ответы [ 3 ]

4 голосов
/ 28 сентября 2011

Глава 15 в Вычислительная геометрия: алгоритмы и приложения описывает и решает именно эту проблему: свободное пространство может быть описано трапециевидной картой, но пути, найденные с помощью карты, не обязательно являются самыми короткими. Рекомендуемое представление (также обсуждаемое в Алгоритмах планирования LaValle (Раздел 6.2.4) ) - это так называемый граф видимости, у которого есть ребра, соединяющие вершины препятствий.

Псевдокод и цифры доступны на домашней странице книги, а Google Preview также содержит части главы.

3 голосов
/ 15 декабря 2011

Вы должны проверить эту ссылку: http://alienryderflex.com/shortest_path/ он объясняет, как рассчитать кратчайший путь внутри многоугольника, очень четкое объяснение и реализацию кода.

0 голосов
/ 04 января 2015

Извините, я не могу помочь с вашим вопросом напрямую, но мы портировали указатель пути на основе многоугольника на haxe, и он может компилироваться в java (пока пробовал только с swing, но может скоро попробовать slick2d) и может быть интегрирован в проект Javaдал некоторое исследование.Он называется hxDaedalus и находится на github и может быть интересным ориентиром.

...