点图

时间:2017-10-06 19:47:53

标签: graphviz dot

我有点以下图表的源代码:

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 - &gt; C - &gt;输出。如果dot将按此顺序放置节点,则只有少数边缘将在两个节点之间交叉。

然而,像这样调用点:

dot mygraph.dot -Tpng -o mygraph.png

造成以下混乱:

enter image description here

编辑:看起来,源中节点的顺序很重要。但是,由于源是从程序生成的,输出其内部信号流结构,我不能依赖它来按正确的顺序放置节点。我想,dot和它的图形布局引擎可以自己弄清楚,哪些节点是第一个,这样导线就不会交叉。

1 个答案:

答案 0 :(得分:0)

只需按所需顺序定义节点:

layoutSudkou

产量

Why declare variables private in a class