【发布时间】:2020-04-08 09:19:40
【问题描述】:
我有以下代码,结果如下图。如您所见,边缘和边缘标签周围有点拥挤,尤其是在“^a”周围。什么是创建更多空间的最佳方法,以便人们可以清楚地看到哪个标签属于哪个边缘?
digraph finite_state_machine {
pad=0.2;
{
rank=same;
node [shape = point, style = invis]; q_0;
node [shape = doublecircle, style = solid]; q_5;
node [shape = circle];
q_1 [ label = <<i>q<sub>1</sub></i>> ];
q_2 [ label = <<i>q<sub>2</sub></i>> ];
q_3 [ label = <<i>q<sub>3</sub></i>> ];
q_4 [ label = <<i>q<sub>4</sub></i>> ];
q_5 [ label = <<i>q<sub>5</sub></i>> ];
q_0 -> q_1;
q_1 -> q_2 [ label = "." ];
q_1 -> q_2 [ label = <ε>, constraint=false ];
q_2 -> q_1 [ label = <ε>, constraint=false ];
q_2 -> q_3 [ label = <<i>a</i>> ];
q_3 -> q_4 [ label = <<i>^a</i>> ];
q_3 -> q_4 [ label = <ε>, constraint=false ];
q_4 -> q_3 [ label = <ε>, constraint=false ];
q_4 -> q_5 [ label = <<i>b</i>> ];
}
}
【问题讨论】:
-
我认为您可以在定义边缘时尝试设置
minlen=5。例如 -q_1 -> q_2 [ minlen=5,label = <&epsilon;>, constraint=false ]; -
效果不太好。我在 q4 到 q3 的 epsilon 边缘上进行了尝试。 egde 变长了,增加了节点之间的距离,但实际上并没有变高,因此问题仍然存在。
-
您可以使用端口来进一步弯曲边缘,如:stackoverflow.com/questions/18515529/…
标签: graphviz