边缘彼此交叉

时间:2019-07-01 22:33:09

标签: graphviz dot

有消除边缘交叉的方法吗?

我尝试了很多方法,没有任何帮助。

let y = 1.<kg s / kilogram>
y = 1.<s/1>

更多详细信息: image

2 个答案:

答案 0 :(得分:0)

添加此不可见的边缘可以解决您的问题:

    l_a_i -> l_c_s [constraint=false style=invis]

我无法从数学上证明其为何有效,但是在这种情况下,通常有助于按顺序定义节点/边,或者尝试添加不可见的adge在所需方向轻推布局

答案 1 :(得分:0)

您需要做的只是稍微重组节点/边缘定义,而无需其他边缘。

例如:

digraph graphname {
    graph [splines=ortho,];
    node [shape=box,];

    a;
    l_a [shape=diamond,label="",height=0.20,width=0.20];
    l;
    l_c [shape=diamond,label="",height=0.20,width=0.20];
    c;
    {rank=same; a -> l_a -> l -> l_c -> c}

    l_a_s [shape=point];
    l_c_s [shape=point];
    l_a -> l_a_s;
    l_c -> l_c_s;

    l_a_i [shape=point];
    l_a_ii [shape=point];
    l_c_t [shape=point];
    l_c_n [shape=point];

    {rank=same;
    l_a_i -> l_a_s -> l_a_ii;
    l_c_t -> l_c_s -> l_c_n;}

    l_a_i -> i;
    l_a_ii -> ii;

    l_c_t -> t;
    l_c_n -> n;
}