在graphviz / dot中记录内部记录

问题描述 投票:3回答:1

我想通过在该记录中的两个元素之间运行直边来突出显示graphviz(v 2.38.0)中记录内的关系。但是,dot会尽一切可能在记录节点之外运行边缘。

以下示例显示了我的问题。

digraph {
  rankdir = LR;
  splines = line;

  i1; i2; i3;
  mux [shape=record,label="{  {<i1>i1|<i2>i2|<i3>i3} | MUX | <o1>o1}"];
  o;

  i1 -> mux:i1;
  i2 -> mux:i2;
  i3 -> mux:i3;
  mux:o1 -> o;

  mux:i1:e -> mux:o1:w [color=red];

}

enter image description here

我希望红色边缘是记录内部端口之间的直线。我不在乎边缘覆盖记录标签。

有没有办法迫使边缘成为忽略障碍物的直线,或者如果物体覆盖节点/标签,则指示物体应该忽略的点?

这个问题类似于Graphviz edges between ports belonging to the same record node look bad,它没有答案。

record graphviz dot
1个回答
0
投票

尝试:splines = curved;

digraph {
  rankdir = LR;
  splines = curved;

  i1; i2; i3;
  mux [shape=record,label="{  {<i1>i1|<i2>i2|<i3>i3} | MUX | <o1>o1}"];
  o;

  i1 -> mux:i1;
  i2 -> mux:i2;
  i3 -> mux:i3;
  mux:o1 -> o;

  mux:i1:e -> mux:o1:w [color=red];


}

png

© www.soinside.com 2019 - 2024. All rights reserved.