I have one automata FSA as below.
I wish to customize the start arrow with a big dot, and keep the arrow 2pt to the target.
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,shapes,arrows,automata}
\def\dx{1cm} \def\dy{1.5cm}
\tikzstyle{state}=[draw,ellipse]
\newcommand{\newState}[4]{\node[state,#3](#1)[#4]{#2};}
\newcommand{\newTransition}[4]{\path[->] (#1) edge [#4] node {#3} (#2);}
\begin{document}
\begin{tikzpicture}[node distance=\dy and \dx,
>=latex,shorten >=2pt,shorten <=2pt,auto,
semithick %semithick, thick, thin semithick
]
\newState{S}{$SS$}{initial below,initial text={}}{}
\newState{q1}{$QQ1$}{right=of S}{}
\newState{q2}{$QQ2$}{below=of q1}{}
\newState{q3}{$QQ3$}{right=of q1}{accepting}
\newTransition{S}{q1}{aa}{}
\newTransition{q1}{q2}{bb}{bend left}
\newTransition{q2}{q1}{cc}{bend left}
\newTransition{q1}{q3}{dd}{}
\draw[<-] (S) -- node[midway,sloped,below,rotate=180] {start} ++(0,-\dy) [fill] circle (4pt);
\end{tikzpicture}
\end{document}
My question is:
- The start arrow didn't keep the 2pt distance from the target.
- Is this right way to draw such a big dot?
- The start text direction need to be rotate 180,is it right way to do it?
Output:
Best Answer
Instead of manually drawing the initial arrow, I'd suggest you to use the
initial distance
key and theevery initial by arrow
style to customize the appearance. For example, you could useA complete example:
The output: