graphviz/dot 中的记录内边
Edges inside records in graphviz/dot
我想在 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];
}
我希望红色边缘是记录内部端口之间的直线。我不在乎边缘是否覆盖唱片标签。
有没有办法强制边缘成为忽略障碍物的直线,或者以其他方式指示对象在覆盖时应忽略的点nodes/labels?
这个问题类似于 Graphviz edges between ports belonging to the same record node look bad,没有答案。
尝试: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];
}
我想在 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];
}
我希望红色边缘是记录内部端口之间的直线。我不在乎边缘是否覆盖唱片标签。
有没有办法强制边缘成为忽略障碍物的直线,或者以其他方式指示对象在覆盖时应忽略的点nodes/labels?
这个问题类似于 Graphviz edges between ports belonging to the same record node look bad,没有答案。
尝试: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];
}