为了简化问题,我有一个包含二维平面上的节点和边的图。我想要做的就是单击一个按钮,它就会自动布局图以查看...
为了简化问题,我有一个包含二维平面上的节点和边的图。
我希望能够单击一个按钮,然后它会自动布局图形,使其看起来干净整洁。我的意思是,边缘交叉最少,节点之间有良好的空间,甚至可以表示图形比例(加权边缘)。
我知道这对于什么是干净的图表来说是完全主观的,但是有谁知道可以从一种算法开始,而不是重新发明轮子吗?
谢谢。
我想说的是 Noufal Ibrahim,但您也可以更精确地查看 graphviz 项目的 C API。它包括一个用于构建包含所有节点和边的图形的库( libgraph.pdf ),以及一个用于布局图形的库( libgvc.pdf )(只需计算每个节点的位置),因此您可以在自己的 UI 中显示它。