graphviz:箭头 "through" 框,而不是 "from - to" 框

graphviz: Arrow "through" boxes, not "from - to" box

我想让箭头"through"一个盒子,而不是从一个盒子到另一个盒子。有没有办法在 graphviz 中完成这个(见下文)?

(我为什么要问: 我有一些数据流图,其中一个实体的多个输出通过同一个实体传递给最后一个实体,而 graphviz输出如下所示:

例如,我觉得这不太好,而且无法识别。)

这在 graphviz 中不存在。

如何简单地省略从 A/B 到 C 的边缘中的箭头?

digraph G {
    node[shape=box];
    {A;B} -> C [arrowhead=none];
    C -> D;
    C -> D;
}

编辑:除非,您真的想要这样做...

... 然后您可以在标签中使用 HTML-like labels for the node which should have edges crossing through, define ports 将边附加到(在这种情况下,"ww" 和 "ee"),并有一个边到端口没有箭头,以及从带有箭头的端口离开的边缘,造成单个箭头穿过端口的错觉(这样是不可见的)。

digraph G {
    node[shape=box];
    C[label=<
    <TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" CELLPADDING="0">
    <TR>
    <TD port="ww"></TD>
    <TD></TD>
    <TD port="ee"></TD>
    </TR>
    <TR>
    <TD></TD>
    <TD CELLPADDING="5">C</TD>
    <TD></TD>
    </TR>
    </TABLE>
    >];
    A -> C:ww:n [arrowhead=none];
    B -> C:ee:n [arrowhead=none];
    C:ww:s -> D;
    C:ee:s -> D;
}

为了获得漂亮的箭头曲线,我还为边缘定义了罗盘点 - 罗盘点 是 n/e/s/w 并确定边缘应该从哪一侧开始enter/leave.