
В общем по задачам с многоугольниками и картами представленными многоугольниками - думаю всё будет очень весело и будет прямая взаимосвязь - чем с более сложными фигурами сможем работать, тем более эффективные алгоритмы работы на векторной карте можно будет реализовать.
Но начнем мы попробуем конечно с простого - ограничимся выпуклыми многоугольниками. И будем с ними делать операции "объединить" и "вычесть", чтобы наносить на карту новые обнаруженные препятствия и убирать те препятствия, которых мы не обнаружили.
Тут сразу начинаются большие и гадкие вопросы - если делать только выпуклые многоугольники, то нифига не ясно как можно будет оптимизировать обнаруженную цепочку препятствий (по результатам замеров ик-бампером, например). Хранить её как серию выпуклых многоугольников - всю карту забьем и тормозить будет не по детски.
PS: Надо будет эту тему и про поиск пути перетащить в Алгоритмы
вроде там ей место.
Т.е. пока карты нет - вокруг, вплотную "стена", а дальномер эту стену отодвигает. Отрезок стены делится положением дальномера и отодвигается на величину его показаний. Потом для оптимального движения в карте можно подумать о применение пространственных "деревьев". Например BSP-Tree
Т.к. человек помнит, что он где-то не ходил и там имеет смысл поискать, а робот знать этого не будет. И тогда у него будет только два режима: