有没有一个好的图形布局库可以从 C++ 调用?
-
22-09-2019 - |
题
(有向)图表示有限自动机。到目前为止,我的测试程序一直在写出点文件进行测试。这对于回归测试(将经过验证的输出文件保存在 subversion 中,询问它是否有更改)和可视化都非常好。然而,也存在一些问题...
基本上,我想要一些可以从 C++ 调用的东西,它为我的状态和转换规划布局,但将绘图留给我 - 这将允许我随心所欲地绘制东西并在 GUI (wxWidgets) 窗口上绘制。
我还想要一个允许商业使用的许可证 - 目前我不需要它,而且我很可能会作为开源发布,但我不想限制我的选择 ATM。
GraphViz 的问题是(1)关于在 Windows 上从源代码构建的警告,(2)渲染和解析的所有不必要的依赖项,以及(3)(假定)缺乏专门且纯粹用于布局的文档化 API。
基本上,我希望能够指定我的状态(带有边界矩形大小)和转换,并读出每个转换的状态和路径点的位置,然后根据这些坐标自己进行绘制。我还没有真正弄清楚应该如何处理过渡注释,但是应该有某种规定来指定这些注释的边界框大小,将它们与过渡相关联,并读出位置。
有谁知道可以满足这些要求的图书馆?
我不一定反对为自己实现某些东西,但在这种情况下,我宁愿尽可能避免它。
解决方案 4
尽管到目前为止的答案值得点赞,但我无法真正接受其中的任何一个。不过我仍然在寻找。
我发现的一件事是 阿格洛. 。代码是 GPL v1,但有描述算法的论文,因此如果需要的话,应该很容易从头开始重新实现。
还有 Gansner、Koutsofios、North 和 Vo 撰写的论文——“绘制有向图的技术”——可从 在 Graphviz 网站上.
我也一直在仔细研究 BSD 许可的(但 Java 的) J图.
不管怎样,看起来我可能会重新实现轮子,即使不是真正重新发明它。
其他提示
嗯,GDToolkit(或 GDT)看起来不错:中的许多图像 教程 看起来很漂亮,而且使用起来似乎也不是很复杂。
编辑:但检查许可证,它看起来像是商业软件:-(。哎呀!
今年早些时候我正在处理类似的问题。然而,决策的一个重要输入参数是预期的节点数量。
我决定使用浏览器作为 GUI,因此寻找不错的 Javascript 库,我遇到的一个是 电线, ,它非常适合技术布局(也可以通过拖放和“动态”布局进行编辑)。你可以通过在线程中运行一个小型网络服务器来轻松地将其连接到你的c++(无论如何,你将需要某种用于GUI的事件循环/线程)。
好吧,只是我的 2 美分。
下面是格拉夫利布斯收集好与比较和搜索功能:结果 http://gvsr.polytech.univ-nantes.fr/GVSR/任务?行动=浏览#
也许你找到一个lib为你哪个适合。