как узнать, проходима ли фигура - PullRequest
2 голосов
/ 06 мая 2010

У меня есть сложный многоугольник (возможно, вогнутый) и несколько его ребер, помеченных как точки входа / выхода.есть вероятность, что внутри этого многоугольника может находиться одна или несколько блокад произвольной формы.Какие подходы я мог бы использовать, чтобы определить, существует ли путь определенной ширины между парой входных / выходных ребер?

прочитав вопрос, он выглядит как тип домашней работы - это не так.Я просто хотел бы иметь по крайней мере несколько отведений, которые я мог бы использовать, так как это ново для меня.

Ответы [ 2 ]

1 голос
/ 06 мая 2010

Взгляните на Планирование движения - там много информации.

0 голосов
/ 06 мая 2010

Это зависит от того, должна ли ширина маршрута иметь ширину. Если объект, который должен перемещаться, имеет конечный размер, вам нужно взять разницу Минковского многоугольника вашего домена с многоугольником движущегося объекта, а затем попытаться проложить маршрут через него.

Один из способов точно вычислить пути - это вычислить граф видимости многоугольника. Граф видимости имеет вершины, соответствующие вершинам многоугольника области (возможно, с отверстиями, где находятся препятствия), и две вершины соединены ребром, если они могут «видеть» друг друга. Форма является проходимой, если существует множество ребер, соединяющих вход с выходом. Вы также можете вычислить такие вещи, как кратчайшие пути. Вычисление графика видимости наивным способом не сложно, но медленно. Есть очень продвинутые алгоритмы для этого, но они (AFAIK) не были реализованы. Я пытался реализовать несколько лет назад, но результаты были весьма посредственными. Большинство из них принимают вершины в общем положении, используя точную арифметику, тогда как в практических приложениях используются числа с плавающей запятой.

...