使用 TiKZ 在状态之间进行多重转换

使用 TiKZ 在状态之间进行多重转换

我正在尝试在使用 TiKZ 库进行自动机绘图时在状态之间创建两个转换。

目前,我有这个示例代码:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows,automata}
\begin{document}
\begin{tikzpicture}[>=stealth',shorten >=1pt,auto,node distance=4cm]
    \node[state] (A)                {A};
    \node[state] (B) [right of = A] {B};
    \path[->] (A) edge [bend left]  node {x = 0} (B)
              (B) edge [bend right] node {x = 1} (A);
\end{tikzpicture}
\end{document}

得出以下结果:

我的丑陋的FSM

我希望在状态之间有两个箭头:一个带有x = 0,另一个带有x = 1

我如何使用 TiKZ 来实现这一点?

答案1

使用bend leftfor两个都边缘产量:

在此处输入图片描述

笔记;

  • 方向bend leftbend right相对于边的方向。如果两个都边从ABbend left,这样bend right就可以了。但是,在这种情况下,由于一个从AB,另一个从BA,因此两者都需要bend left才能获得所需的结果。

  • 数学内容应该总是处于数学模式。查看 MWE 中与边标签相关的更改。

代码:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows,automata}
\begin{document}
\begin{tikzpicture}[>=stealth',shorten >=1pt,auto,node distance=4cm]
    \node[state] (A)                {A};
    \node[state] (B) [right of = A] {B};
    \path[->] (A) edge [bend left]  node {$x = 0$} (B)
              (B) edge [bend left] node {$x = 1$} (A);
\end{tikzpicture}
\end{document}

相关内容