Сгенерируйте граф шестиугольной решетки в мире с помощью Networkx - PullRequest
0 голосов
/ 29 мая 2020

Я хочу сгенерировать шестиугольную сетку в океане для поиска кратчайшего пути.

Networkx предоставляет lattice.hexagonal_lattice_graph , который генерирует граф, узлы и ребра которого представляют собой шестиугольную мозаику плоскости.

Однако я не хочу искать по краям шестиугольников, но я хотел бы рассматривать шестиугольники как узлы, а 6 смежных шестиугольников как соседние узлы. Таким образом, есть 6 направлений поиска от узла, как показано на этом рисунке .

Чтобы применить это к проблеме маршрутизации корабля, я бы сгенерировал такой график для Земли и исключить все шестиугольные плитки внутри наземных многоугольников и разделить шестиугольники, пересекающиеся с границами наземных многоугольников, на более мелкие шестиугольники, создавая более высокую плотность графа в прибрежных областях.

Как мне создать такой шестиугольный мозаичный граф, чтобы каждый узел имеет ребра в шести направлениях с Networkx?

1 Ответ

0 голосов
/ 10 июня 2020

Аналогичный вопрос находится здесь .

Я рекурсивно разделил треугольники икосаэдра на меньшие треугольники, как это сделано в этом блоге . Затем с помощью Networkx построил граф вершин и ребер.

...