我在C Qt应用程序(在Ubuntu上)中有一个字符串,其中包含有效的GraphViz /点图语法 . 我想从这个文本生成一个图像文件/对象,类似于各种在线工具(如这一个:http://www.webgraphviz.com/)吐出的图像 . 也许我似乎找到了相关的帮助 .
我基本上想要的是这样的:
generate_dot_graph_image(std::string dot_text, std::string image_file_path)
Additional details: 我有一个Dijkstra解算器,其解决方案(基本上是删除未使用边缘后的原始图形)我想在我的应用程序中可视化 . 解算器已经包含一个选项,可以将解决方案转换为可以使用实用程序(如上面链接的实用程序)解析为点图的字符串 . 但我想要的是能够从C内部做到这一点 .
2 回答
所以我能够使用GraphViz库完全按照我的意愿行事 . 您可以使用
sudo apt-get install graphviz-lib
和sudo apt-get install libgraphviz-dev
在Ubuntu上安装它们 . 一旦完成:gvc是一个C库,函数将非const C字符串作为参数,因此const_casts在开头 . 您还可以通过更改
-Gsize=8,4
和-Gdpi=100
参数来编辑图像大小 . 使用当前配置,您将获得一个8 * 100 x 4 * 100 = 800x400图像文件 . 无论如何,这些参数与从bash运行dot
命令时应用的参数相同 .除此之外,此代码基本上是从graphViz中的一个示例复制为库手册:http://www.graphviz.org/pdf/libguide.pdf
我找到了一种方法,我使用了以下功能,它的工作原理如下: