是否有一个可以从C ++调用的好的图形布局库?

时间:2010-03-28 20:49:38

标签: c++ layout directed-graph automata

(定向)图表代表有限自动机。到目前为止,我的测试程序已经写出了用于测试的点文件。这对于回归测试(将验证的输出文件保存在subversion中,询问是否存在更改)和可视化都非常好。但是,有一些问题......

基本上,我想要一些可以从C ++中调用的东西,它可以为我的状态和过渡计划一个布局,但是将绘图留给我 - 这将允许我绘制我想要的东西并在GUI(wxWidgets)窗口上绘制。

我还想要一个允许商业用途的许可证 - 我目前不需要它,我可能很好地发布作为开源,但我不想限制我的选择ATM。

GraphViz的问题是(1)关于在Windows上从源构建的警告,(2)用于渲染和解析的所有不必要的依赖性,以及(3)(假定的)缺少具体记录的API并且纯粹用于布局

基本上,我希望能够指定我的状态(具有边界矩形大小)和过渡,并读出每个过渡的状态和航点的位置,然后基于这些坐标自己绘制。我还没有弄清楚应该如何处理转换上的注释,但应该有一些规定来为那些指定边界框大小,将它们与转换相关联,以及读出位置。

是否有人知道可以处理这些要求的库?

我不一定反对为自己实施某些事情,但在这种情况下,如果可能,我宁愿避免使用它。

5 个答案:

答案 0 :(得分:2)

OGDF属于GPL。

Pigale也属于GPL。

GoVisual是商业软件,但对于一个开发者来说,它的起价似乎是1800美元。

答案 1 :(得分:2)

嗯,GDToolkit(或GDT)看起来没问题:tutorial中的许多图像看起来都很漂亮,看起来它看起来并不是很复杂。

编辑:但是检查许可证,它看起来像是商业软件:-(。哎呀!

答案 2 :(得分:1)

我今年早些时候正在处理类似的问题。然而,决策的一个重要输入参数是预期的节点数。

我决定使用浏览器作为GUI,因此寻找了很好的Javascript库,我遇到的是wireit,它非常适合技术布局(还有拖放编辑和“on”苍蝇“布局”。您可以通过在线程中运行一个小型Web服务器轻松地将它连接到您的c ++(无论如何,您将需要某种用于GUI的eventloop / thread thingie。)

嗯,我的2美分。

答案 3 :(得分:0)

虽然到目前为止的答案值得投票,但我真的不能接受任何一个。不过,我一直在寻找。

我找到的一件事是AGLO。代码是GPL v1,但有些论文描述了这些算法,所以如果有必要,它应该很容易从头开始重新实现。

Gansner,Koutsofios,North和Vo的论文 - “绘制有向图的技术” - 可从here on the Graphviz site获得。

我也一直在密切关注BSD许可(但Java)JGraph

不管怎样,看起来我可能正在重新实施这个轮子,如果不是真的重新发明它的话。

答案 4 :(得分:0)

以下是一系列具有比较和搜索功能的Graph Libs:
http://gvsr.polytech.univ-nantes.fr/GVSR/task?action=browse#

也许你找到一个适合你的lib。