0

使用LEMON C++ 库和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演示中所示,但我找不到类似edgeTexts(weights(id))or的内容arcTexts(weights(id))

上面代码的输出如下所示,我希望地图weights中的权重位于相应边的顶部。

网格图图像

任何帮助是极大的赞赏。

4

1 回答 1

0

似乎没有内置的方法可以做到这一点。我最终连接到了 graphToEps 打印节点文本的部分,然后只是找出在哪里放置所有边缘的文本。所有边缘都被“打印”,就好像它们是节点一样。

我可能会在今年晚些时候提出拉取请求。

于 2020-03-27T17:30:22.590 回答