TikZ 自动机:“箭头接受”颜色

TikZ 自动机:“箭头接受”颜色

我希望能够实现以下着色“通过箭头接受”节点,但是是逐个节点地接受,而不是全局地接受:

在此处输入图片描述

这个问题我能够看到如何全局设置箭头样式,但我对 Tikz 的了解还很基础,我无法弄清楚如何为特定节点设置接受箭头的颜色。(设置节点颜色为红色不会改变接受箭头的颜色。

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{automata}

\tikzset{positive/.style={circle,red,minimum width=8pt,draw}}

\begin{document}
\begin{tikzpicture}[every accepting by arrow/.style={red}]
\node[positive,initial,initial text=,accepting by arrow] (A) {};
\end{tikzpicture}
\end{document}

答案1

您可以修改\newTransition您链接的帖子的宏。

我使用的参数是:

  1. 起始节点名
  2. 结束(假)节点名称
  3. 假节点的位置
  4. 箭头的颜色。

以下是 MWE:

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{automata, positioning}
\newcommand{\newTransition}[4]{\coordinate[#3 of #1] (#2);\draw[->] (#1) edge [#4] node {} (#2);} 

\tikzset{positive/.style={circle,minimum width=8pt,draw}}

\begin{document}
    \begin{tikzpicture}
        \node[positive, initial, initial text=, accepting by arrow] (A) {};% benchmark with no colors
        \node[positive, initial, initial text=, red, below = of A] (B) {};
        \newTransition{B}{dummy1}{right =1.3em}{green}
        \node[positive, initial, initial text=, blue, below = of B] (C) {};
        \newTransition{C}{dummy2}{right =1.3em}{orange}
    \end{tikzpicture}
\end{document}

以下是结果(第一个没有颜色作为基准):

在此处输入图片描述

相关内容