17

(有向)图表示有限自动机。到目前为止,我的测试程序一直在写出点文件进行测试。这对于回归测试(将经过验证的输出文件保存在 subversion 中,询问它是否有变化)和可视化都非常好。不过,也有一些问题...

基本上,我想要一些可从 C++ 调用的东西,它为我的状态和转换计划一个布局,但把绘图留给我——这将允许我随心所欲地绘制东西并在 GUI (wxWidgets) 窗口上绘制。

我还想要一个允许商业使用的许可证——我目前不需要,我很可能会作为开源发布,但我不想限制我的选项 ATM。

GraphViz 的问题是(1)关于在 Windows 上从源代码构建的警告,(2)所有不必要的渲染和解析依赖项,以及(3)(假定)缺乏专门用于布局的文档化 API。

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

有谁知道可以处理这些要求的库?

我不一定反对为自己实现某些东西,但在这种情况下,如果可能的话,我宁愿避免它。

4

5 回答 5

2

OGDF 遵循GPL。

Pigale也在 GPL 下。

GoVisual是商业软件,但对于一位开发人员来说,它的起价为 1800 美元。

于 2010-03-29T14:40:33.227 回答
2

嗯,GDToolkit(或 GDT)看起来不错:教程中的许多图像看起来都不错,而且看起来使用起来也不是很复杂。

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

于 2010-03-29T16:54:44.720 回答
1

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

我决定使用浏览器作为 GUI,因此寻找了不错的 Javascript 库,我遇到的一个是wireit,它非常适合技术布局(还可以通过拖放和“动态”布局进行编辑)。您可以通过在线程中运行一个小型网络服务器轻松地将其连接到您的 c++(无论如何,您将需要某种用于 GUI 的事件循环/线程事物)。

好吧,只是我的 2 美分。

于 2010-03-29T11:15:33.817 回答
1

尽管到目前为止的答案值得一票,但我不能真正接受其中任何一个。不过,我一直在寻找。

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

还有 Gansner、Koutsofios、North 和 Vo 的论文——“绘制有向图的技术”——可从Graphviz 网站上获得

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

一种或另一种方式,看起来我可能正在重新实现轮子,如果不是真的重新发明它的话。

于 2010-03-31T23:40:12.533 回答
0

这是具有比较和搜索功能的图形库的一个很好的集合:
http ://gvsr.polytech.univ-nantes.fr/GVSR/task?action=browse#

也许您会找到适合您的库。

于 2012-05-09T13:02:00.493 回答