我创建了以下graphviz图,代表了一个包含周期的链表:
igraph foo {
rankdir=LR;
node [shape=record];
a [label="{ <data> 12 | <ref> }", width=1.2]
b [label="{ <data> 99 | <ref> }"];
c [label="{ <data> 37 | <ref> }"];
a:ref:c -> b:data [arrowhead=vee, arrowtail=dot, dir=both, tailclip=false, arrowsize=1.2];
b:ref:c -> c:data [arrowhead=vee, arrowtail=dot, dir=both, tailclip=false];
c:ref:c -> b:data [arrowhead=vee, arrowtail=dot, dir=both, tailclip=false];
}
不幸的是,从c:ref
到b:data
的箭头跨越了节点c
:
如何强制边缘绕过节点而不穿过它们?
答案 0 :(得分:3)
我无法找到一个简单且完全令人满意的答案,但更改罗盘点可能有所帮助。
digraph foo {
rankdir=LR;
node [shape=record];
a [label="{ <data> 12 | <ref> }", width=1.2]
b [label="{ <data> 99 | <ref> }"];
c [label="{ <data> 37 | <ref> }"];
a:ref:c -> b:data [arrowhead=vee, arrowtail=dot, dir=both, tailclip=false, arrowsize=1.2];
b:ref:c -> c:data [arrowhead=vee, arrowtail=dot, dir=both, tailclip=false];
c:ref:s -> b:data:s [arrowhead=vee, arrowtail=dot, dir=both, tailclip=false];
}
答案 1 :(得分:1)
您可以为点文件运行"dot -Tsvg"
,然后在svg
之后打开ms visio
文件并执行