如何为控制系统图定位带点的元素?
How position elements with dot for a control system diagram?
我想控制以下示例中某些元素的定位:
digraph {
graph [splines=ortho];
/* Node customization. */
node [shape=box];
join [shape=point];
set [label="set\npoint"];
/* Define node levels; driving elements on top, feed back below. */
{ rank = min; set; PID; P1; P2; join; OUT;}
{ rank = max; M1;}
/* Edges */
set -> PID -> P1 -> P2;
P2-> join [arrowhead=none];
join -> {OUT; M1};
PID -> M1 [dir=back];
}
- 如果我向 M1 等级添加更多元素,则边连接到随机点(north/top 边)。我想让它们水平连接。这可以做到吗?
- 如何增加 PID/P1/P2 之间的间距(边长) ?
- 最好将P1/M1垂直对齐。这可以做到吗?
传统控制系统图没有join节点,一条边从另一条边出来。这可能吗? 我为此删除了箭头。
也许有些问题是无关紧要的,因为适当定位一个问题会使其他问题自然发生。
一般可以通过headport属性来控制箭头进入节点的点。但是对于 ortho
样条曲线,这很少起作用。正交样条有自己的生命,会导致各种不同的问题,包括边缘标签消失。所以你的第一个问题没有确定的答案,具体情况要具体处理。
您可以通过设置 nodesep 图形属性来增加 所有 节点之间的距离。但是如果你只需要增加特定节点之间的距离,你可以使用一个技巧:为值添加一个带有大量空格的标签。
你可以用不可见的边缘来完成它。
第 2 点和第 3 点在下面的编辑示例中进行了说明:
digraph {
graph [splines=ortho];
/* Node customization. */
node [shape=box];
join [shape=point];
set [label="set\npoint"];
/* Define node levels; driving elements on top, feed back below. */
{ rank = min; set; PID; P1; P2; join; OUT;}
{ rank = max; M1;}
/* Edges */
set -> PID;
P2-> join [arrowhead=none];
join -> {OUT; M1}
PID -> M1 [dir=back];
PID -> P1 -> P2 [label=" "] /* #2 increase space between specific nodes */
P1 -> M1 [style=invis] /* #3 align P1 an M1 */
}
结果:
我想控制以下示例中某些元素的定位:
digraph {
graph [splines=ortho];
/* Node customization. */
node [shape=box];
join [shape=point];
set [label="set\npoint"];
/* Define node levels; driving elements on top, feed back below. */
{ rank = min; set; PID; P1; P2; join; OUT;}
{ rank = max; M1;}
/* Edges */
set -> PID -> P1 -> P2;
P2-> join [arrowhead=none];
join -> {OUT; M1};
PID -> M1 [dir=back];
}
- 如果我向 M1 等级添加更多元素,则边连接到随机点(north/top 边)。我想让它们水平连接。这可以做到吗?
- 如何增加 PID/P1/P2 之间的间距(边长) ?
- 最好将P1/M1垂直对齐。这可以做到吗?
传统控制系统图没有join节点,一条边从另一条边出来。这可能吗?我为此删除了箭头。
也许有些问题是无关紧要的,因为适当定位一个问题会使其他问题自然发生。
一般可以通过headport属性来控制箭头进入节点的点。但是对于
ortho
样条曲线,这很少起作用。正交样条有自己的生命,会导致各种不同的问题,包括边缘标签消失。所以你的第一个问题没有确定的答案,具体情况要具体处理。您可以通过设置 nodesep 图形属性来增加 所有 节点之间的距离。但是如果你只需要增加特定节点之间的距离,你可以使用一个技巧:为值添加一个带有大量空格的标签。
你可以用不可见的边缘来完成它。
第 2 点和第 3 点在下面的编辑示例中进行了说明:
digraph {
graph [splines=ortho];
/* Node customization. */
node [shape=box];
join [shape=point];
set [label="set\npoint"];
/* Define node levels; driving elements on top, feed back below. */
{ rank = min; set; PID; P1; P2; join; OUT;}
{ rank = max; M1;}
/* Edges */
set -> PID;
P2-> join [arrowhead=none];
join -> {OUT; M1}
PID -> M1 [dir=back];
PID -> P1 -> P2 [label=" "] /* #2 increase space between specific nodes */
P1 -> M1 [style=invis] /* #3 align P1 an M1 */
}
结果: