我想让箭头"通过" 一个框,而不是从一个框到另一个框。有没有办法在graphviz中完成这个(见下文)?
(为什么我要问:我有一些数据流图,其中来自实体的多个输出通过同一个实体传递给最后一个实体,graphviz输出如下所示:
例如,我发现这并不好,也无法识别。)
答案 0 :(得分:1)
这并不存在于graphviz中。
如何简单地省略从A / B到C的边缘的箭头?
digraph G {
node[shape=box];
{A;B} -> C [arrowhead=none];
C -> D;
C -> D;
}
编辑:除非,你真的想要这样做......
...然后你可以使用HTML-like labels作为应该有边穿过的节点,在标签中定义ports以附加边(在这种情况下," ww&#34和" 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并确定边缘应该进入/离开的哪一侧