非常感谢。我认为“等级=相同; 0; 8;”隐含意味着与“rank = same; 0-> 8 [style = invis];”相同。无论如何,我的担忧并不是交叉边缘。这似乎是一个错误,因为(6)和(2)留下足够的空间来画一条线。人们必须把一切都向正确的方向移动。 我的算法会生成一个命令,以便每个树(绿色)边缘可以向下/向右,每个十字(橙色)边缘向下/向左,每个向后(红色)边缘向上/向左。如果图形是平面的,则不使用交叉。为了实现这一点,(8)必须绘制在(0)的右边。我真的很开心,因为如果我使用你的技术,就会发生这种情况。
digraph {
graph [charset=latin1, size ="19,46, 11,12"]
node [shape=box, fontname="Comic Sans MS", fontsize=8, height=0.2, width=0.2, ordering=out]
{ rank=same; 0 -> 8 [style=invis]; }
{ rank=same; 1; }
{ rank=same; 2; }
{ rank=same; 5 -> 9; [style=invis]; }
{ rank=same; 6 -> 7 -> 10; [style=invis]; }
{ rank=same;3; }
{ rank=same;4; }
0 -> 1 [color=green]
1 -> 2 [color=green]
8 -> 2 [color=orange]
2 -> 5 [color=green]
5 -> 6 [color=green]
6 -> 2 [color=red, tailport=w, headport=w]
5 -> 7 [color=green]
7 -> 4 [color=green]
2 -> 3 [color=green]
2 -> 9 [color=green]
9 -> 10 [color=green]
10 -> 3 [color=orange]
3 -> 4 [color=orange]
}
和它的布局1