Tôi có mã sau và kết quả là hình ảnh bên dưới. Như bạn có thể thấy, đó là một chút đông đúc xung quanh các cạnh và các nhãn cạnh, đặc biệt là xung quanh "^ a". Cách tốt nhất để tạo ra chỉ là một chút nhiều không gian hơn, để người ta có thể thấy rõ nhãn nào thuộc về cạnh nào?Graphviz --- nhãn cạnh quá gần cạnh khác
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>> ];
}
}
Tôi nghĩ bạn có thể thử đặt 'minlen = 5' khi bạn xác định các cạnh của mình. Ví dụ - 'q_1 -> q_2 [minlen = 5, label = <ε>, constraint = false];' – Raj
Điều đó không thành công lắm. Tôi đã thử nó trên cạnh epsilon từ q4 đến q3. Các egde trở nên dài hơn, tăng khoảng cách giữa các nút, nhưng không thực sự đi bất kỳ cao hơn, do đó vấn đề vẫn còn. – oskarkv
Bạn có thể sử dụng cổng để làm cong các cạnh hơn, như sau: http://stackoverflow.com/questions/18515529/graphviz-place-edge-label-on-the-other-side-ii/18698294#18698294 –