GraphViz点文件是否具有确定性?

时间:2013-02-22 06:57:15

标签: graphviz dot

我正在使用Doxygen在源代码中制作一些GraphViz点图。

问题:特定点文件生成的图表是否保证始终产生相同的输出?

对于不同的计算机,在一天中的不同时间,在不同的架构上是这种情况吗?

我正在考虑使用罗盘点来优化我的图表并让它看起来更漂亮。

我想知道图布局的初始种子或布局引擎的任何“实现定义”部分是否存在任何“随机性”。如果在其他系统上看起来不一样,我不想为我的系统优化输出做很多努力。这将由Windows和Mac用户使用。 TIA

2 个答案:

答案 0 :(得分:0)

我使用不同的渲染环境(如online / cli)进行了大量实验。

如果您使用不同的graphviz版本,则很有可能获得不同的结果。在同一版本中,我从未遇到点图中的非确定性问题。

另一个话题可能是,如果你使用特殊的utf-fonts,它可以在不同的系统上呈现不同的。对于例如emoji-Flags渲染在windows与mac / unix上。

也许包装/调用工具如doxygen / understand / pygraph / jgraph / gograph等pp。可能是不同系统上不同点文件的来源。

我会说点图本身在同一版本中是非常确定的。

答案 1 :(得分:0)

我相信,默认情况下,由graphviz生成的图是确定性的,因为初始节点位置和求解器都是这样。要生成其他图像,请将graph属性'start'设置为rand。

参考:https://www.graphviz.org/pdf/neatoguide.pdf