![当我使用 tikzpicture 绘制自动机时,如何告诉我的边缘在上面形成弧线?](https://linux22.com/image/255532/%E5%BD%93%E6%88%91%E4%BD%BF%E7%94%A8%20tikzpicture%20%E7%BB%98%E5%88%B6%E8%87%AA%E5%8A%A8%E6%9C%BA%E6%97%B6%EF%BC%8C%E5%A6%82%E4%BD%95%E5%91%8A%E8%AF%89%E6%88%91%E7%9A%84%E8%BE%B9%E7%BC%98%E5%9C%A8%E4%B8%8A%E9%9D%A2%E5%BD%A2%E6%88%90%E5%BC%A7%E7%BA%BF%EF%BC%9F.png)
我正在使用 TikZ 绘制有限自动机。目前,过渡箭头在节点之间重叠,因为它们都是水平交叉的。我怎样才能让一个箭头在上方呈弧形,另一个箭头在下方呈弧形?
以下是我所拥有的:
(q_0) edge node {H} (q_1)
(q_1) edge node {T} (q_0)
答案1
您可以根据需要在选项中使用bend left
或。bend right
edge
一个例子
\documentclass{standalone}
\usepackage{pgf}
\usepackage{tikz}
\usetikzlibrary{arrows,automata}
\usepackage[latin1]{inputenc}
\begin{document}
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2.8cm,
semithick]
\tikzstyle{every state}=[fill=magenta!40,draw=none,text=white]
\node[initial,state] (A) {$q_a$};
\node[state] (B) [above right of=A] {$q_b$};
\node[state] (C) [below right of=B] {$q_c$};
\path (A) edge node {0,1,L} (B)
edge [bend left] node {1,1,R} (C)
(B) edge [loop above] node {1,1,L} (B)
edge node {0,1,L} (C)
(C) edge [bend left] node {0,1,L} (A);
\end{tikzpicture}
\end{document}