2012-10-19 68 views
3

我想为项目使用graphviz,并且无法获得我想要的行为。我有一张可以用graphviz绘制的图形,但我也有一个具有一些额外边缘的图形。我希望绘制第二张图的节点与第一张图的位置相同,同一位置的图的边也绘制出来,但是绘制的新边不会与节点重叠。Graphviz允许边缘节点重叠

为了更好地了解我想要的内容,请想象一张带有图形的Powerpoint幻灯片,然后在下一张幻灯片上绘制这些额外边缘出现在第一个图形顶部的同一图形,而不会修改旧的外观图的一部分。这是我想要的效果。

我认为效果可以通过让一些边缘忽略任何重叠约束来实现。我无法弄清楚如何控制特定边(甚至是所有边)的边和节点之间的重叠。

任何想法?

+1

你会创建一个示例样机图像,并请附上? – VKen

+0

最初的图形可能如下所示:[link](https://dl.dropbox.com/u/665697/test.svg)与边缘重叠的图像如下所示:[link](https:// dl.dropbox.com/u/665697/overlapping-edges.png)。不是原始图形的格式与更新后的格式相同,只有一些额外的边缘可以与节点重叠。问题是,我喜欢原始图形的格式,并且额外的边缘会增加布局的太多约束,并使其难以遵循。我想保留原始图形的布局,只需添加这些边缘。 – Dreckgos

回答

2

您可以通过dot -Tdot(或可能是dot -Txdot)将dot输出另一个.dot文件,并将位置分配给所有元素。将附加边添加到该文件,并再次通过dot运行它以生成第二个图。

+0

哇。这是一个很棒的功能。感谢你提到这一点。 – jnns