【发布时间】:2017-10-07 04:21:36
【问题描述】:
我有以下点图中的源代码:
digraph name {
rankdir="LR";
node [shape="record"];
1 [label="OUTPUT"];
A [label="FWD|<i>i|<r_in>r_in|<r_out>r_out|<o>o"];
B [label="FIFO|<r_in>r_in|<o>o"];
C [label="Cons|<i>i|<r_out>r_out|<o>o"];
A:o:e -> C:i:w;
C:r_out:w -> A:r_in:e;
B:o:e -> A:i:w;
C:o:e -> 1:w;
A:r_out:w -> B:r_in:e;
}
它由 4 个节点组成,基本上可以按照 B -> A -> C -> OUTPUT 的顺序依次放置。如果 dot 将节点按此顺序放置,则只有很少的边会在两个节点之间交叉。
但是,像这样调用点:
dot mygraph.dot -Tpng -o mygraph.png
造成以下混乱:
编辑:看来,源中节点的顺序很重要。但是,由于源是从程序生成的,输出其内部信号流结构,我不能依靠它来将节点按正确的顺序排列。我想,dot 和它的图形布局引擎可以自己找出哪些节点是第一个节点,这样线就不会交叉。
【问题讨论】: