Создать график подключенных выпуклого многоугольника
-
13-10-2019 - |
Вопрос
Я пытаюсь взять плотный график точек, таких как это, и превратите его в график подключенных выпуклых многоугольников. Полигоны должны быть максимально большими и максимально простыми, оставаясь на связи. Результирующий график будет использоваться для определения пути. Может кто-то указать мне верное направление?
Решение
Это очень раздражает, что я не могу публиковать ссылки. Затрудняет быть скрытым и единственным случайным участником.
В итоге я использовал следующие методы:
Во -первых, создайте преобразование расстояния. Я использовал алгоритм, описанный здесь [не может ссылаться], что привело к такому изображению [не может ссылаться]. Затем создайте водораздел DT, чтобы разделить его на области. Это нуждается в некоторой работе, но в настоящее время выглядит так [не может ссылаться], тогда используйте средние точки полилиний, соединяющих каждую пару областей, для создания графика путевой точки.
Разделение водораздела еще не идеальна, обратите внимание на псевдоним, вызывающий полосы, но в итоге я получаю 181 область и 281 путевые точки для этой карты 128x128.
Другие советы
Это не то, о чем вы просили, но вот некоторые другие идеи для решения этой проблемы планирования 2D -пути:
Использовать*. Это дает кратчайший путь без столкновений. Производительность может быть в порядке, даже без упрощения растрового изображения.
Использовать Дорожная карта на основе отбора проб. Анкет Это еще одно дискретное представление, чем многоугольники. Поскольку ваше пространство поиска невелико, вы можете пройти всю растровую карту, чтобы убедиться, что каждая точка может быть подключена к дорожной карте. Если Компакт Дорожная карта важна (но короткие пути нет), Видимость дорожная карта Техника может быть использована.
Поскольку вам в любом случае приходится иметь дело с представлением графика и поиском графика, эти методы кажутся намного проще, чем извлечение многоугольника. Я выкопал несколько вопросов для этой проблемы:
- Преобразовать растровое изображение в многоугольный
- Как я могу преобразовать простую растровую карту в вектор
Когда пространство было отображено с помощью полигонов (возможно, используя инструмент), его можно разделить на выпуклые многоугольники или какое -то другое представление, которое можно искать. Это также обсуждается Lavalle: