C++ LEMON Graph Library - Показать карту дуги/ребра с помощью graphToEps()

Использование библиотеки C++ LEMON и GraphToEps, я пытаюсь визуализировать сетчатый график с соответствующими весами ребер (или дуг), не повезло. Вот что у меня есть в моей main():

// Create graph and init maps
GridGraph g = GridGraph(5, 5);
GridGraph::NodeMap<Point> coords(g);
GridGraph::EdgeMap<int> weights(g, 1);

// Set positions of nodes for graphToEps use
for(GridGraph::NodeIt u(g); u != INVALID; ++u ) {
    coords[u] = g.pos(u);
}

cout << "Create 'graph.eps'" << endl;
graphToEps(g,"graph.eps").
        coords(coords).
        title("Sample .eps figure").
        run();

Я могу получить текст узла (который я исключил из приведенного выше кода для простоты), используя graphToEps.nodeTexts(id), как показано в файле graphToEps demo, но я не могу найти что-то вроде edgeTexts(weights(id)) или arcTexts(weights(id)).

Вывод приведенного выше кода показан ниже, и я хотел бы, чтобы веса из карты weights были поверх соответствующих ребер.

Изображение сетки

Любая помощь приветствуется.


person sourLemons    schedule 28.02.2020    source источник


Ответы (1)


Кажется, нет встроенного способа сделать это. В итоге я подключился к части graphToEps, которая печатает текст узла, а затем просто выяснил, где разместить текст для всех ребер. Все ребра «печатаются», как если бы они были узлами.

Я, вероятно, поставлю запрос на вытягивание позже в этом году.

person sourLemons    schedule 27.03.2020