10

我有以下点文件:

digraph finite_state_machine {                                                                                                                                                                                  
    pad=0.2;
    {
        rank=same;
        node [shape = doublecircle]; q_3;
        node [shape = circle];
        q_1 [ label = <<b><i>q<sub>1</sub></i></b>> ];
        q_2 [ label = <<b><i>q<sub>2</sub></i></b>> ];
        q_3 [ label = <<b><i>q<sub>3</sub></i></b>> ];
        q_1 -> q_1 [ label = <<b><i>^a</i></b>> ];
        q_1 -> q_2 [ label = <<b><i>a</i></b>> ];
        q_2 -> q_2 [ label = <<b><i>^b</i></b>> ];
        q_2 -> q_3 [ label = <<b><i>b</i></b>> ];
    }
}

我得到以下输出:输出图像

我希望自循环位于节点之上,而不是越过其他边缘。并且,如果可能的话,更多的循环。我怎样才能做到这一点?

我希望它看起来像这样:

4

1 回答 1

17

您可以使用端口/指南针点

q_1:e -> q_1:w [ label = <<b><i>^a</i></b>> ];
q_2:e -> q_2:w [ label = <<b><i>^b</i></b>> ];

带有循环循环的graphviz

或使用nw/ne作为罗盘点:

事件循环器循环

于 2012-10-15T16:43:00.717 回答