4

I need to draw the following figure enter image description here

I tried but I cannot draw the arrows between the nodes and it doesn't seem the right way to draw what I want any help is highly appreciated

\begin{figure} 
 \centering
  \begin{tikzpicture}
  \draw[thick,dashed] (0,0) arc (0:180:2.5cm); 
  \draw[fill=white] (-2,0) rectangle (-3,-0.4);  \node at (-2.5,-0.2){{\tiny STP}};
  \draw[fill=white] (0,0) circle [radius=0.3cm]; \node at (0,0){{\tiny P$_{r}$}};
  \draw[fill=black] (-0.5,1.5) circle [radius=0.3cm]; 
  \draw[fill=white] (-1.5,2.3) circle [radius=0.3cm];  \node at(-1.5,2.3) {{\tiny P$_{i}$}} ;
  \draw[fill=black] (-2.5,2.5) circle [radius=0.3cm]; 
  \draw[fill=black] (-3.5,2.3) circle [radius=0.3cm]; 
  \draw[fill=white] (-4.5,1.5) circle [radius=0.3cm] ;  \node at (-4.5,1.5){{\tiny P$_{2}$}};
  \draw[fill=white] (-5,0) circle [radius=0.3cm]; \node at (-5,0){{\tiny P$_{1}$}} ;
 \end{tikzpicture}
\end{figure}
  • 2
    Welcome to TeX.SX! Can you please make the code fully compilable with a minimal preamble? – egreg Feb 19 '18 at 0:35
4

enter image description here

with use of tikz libraries arrows.meta, automata and quotes:

\begin{tikzpicture}[
state/.append style = {fill=white, 
                       minimum size=2em, inner sep=0pt,
                       font=\footnotesize},
every edge quotes/.append style = {font=\footnotesize}
                        ]
\node (n0) [state]  {STP};
%
\node (n1) [state,label=left:{$T=[v+t_1]$}]   at (180:2.4)   {$P_1$};
\node (n2) [state,label=left:{$T=[v+t_2]$}]   at (150:2.4)   {$P_2$};
\node (n3) [state,label={$T=[v+t_i]$}]        at ( 90:2.4)   {$P_i$};
\node (n4) [state,label=right:{$T=[v+t_r]$}]  at (  0:2.4)   {$P_r$};
%
\draw[-Straight Barb]
    (n4) edge ["{$[T+V]$}"]   (n0)
    (n0)  to  ["{$[V]$}"]     (n1);

%
\draw[-Straight Barb, densely dashed]
    (n1) edge [out=85, in=245] (n2)
    (n2) edge [out=55, in=185] (n3)
    (n3) edge [out=-5, in= 95] (n4);
\end{tikzpicture}

an alternative solution with nicer half circle and arrows head on the midle cures between node. additional is use tikz library decorations.markings:

enter image description here

\begin{tikzpicture}[
                  > = {Straight Barb[line width=1pt]},
state/.append style = {fill=white,
                       minimum size=2em, inner sep=0pt,
                       font=\footnotesize},
         decoration = {markings, mark=at position 0.09  with {\arrow{>}},
                                 mark=at position 0.35 with {\arrow{>}},
                                 mark=at position 0.75 with {\arrow{>}}
                        },
every edge quotes/.append style = {font=\footnotesize}
                    ]
\draw[densely dashed, postaction={decorate}] (-2.4,0) arc (180:0:2.4);
\node (n0) [state]  {STP};
%
\node (n1) [state,label=left:{$T=[v+t_1]$}]   at (180:2.4)   {$P_1$};
\node (n2) [state,label=left:{$T=[v+t_2]$}]   at (150:2.4)   {$P_2$};
\node (n3) [state,label={$T=[v+t_i]$}]        at ( 90:2.4)   {$P_i$};
\node (n4) [state,label=right:{$T=[v+t_r]$}]  at (  0:2.4)   {$P_r$};
%
\draw[-Straight Barb]
    (n4) edge ["{$[T+V]$}"]   (n0)
    (n0)  to  ["{$[V]$}"]     (n1);
\end{tikzpicture}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.