2

After incorporating the suggestions from TikZ experts, I have achieved the following:

Arrow not merged

I have used anchors available on the nodes. But the arrows are not merged. I have consulted answers like: Merge arrows with TikZ, but they are not helping me.

How do merge the arrows like this:

Arrow merged

My code:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\tikzset{squarenode/.style = {
    shape  = rectangle,
    fill   = gray!50,
    draw   = black,
    thick,
    minimum height = 1cm,
    minimum width  = 1cm
}}

\tikzset{circlenode/.style = {
    shape  = circle,
    fill   = blue!20,
    draw   = blue,
    thick,
    minimum size = 1cm
}}

\tikzset{help lines/.style=very thin}
\tikzset{My Grid/.style={help lines,color=blue!50}}

\begin{document}
\begin{tikzpicture}
  %\draw[My Grid] (-5,-5) grid (15,15);
  \node (r1) at (-4,4) [squarenode] {r1};
  \node[right=4cm of r1] (r2) [squarenode] {r2};
  \node[below=3cm of r1] (r3) [squarenode] {r3};
  \node[right=4cm of r3] (r4) [squarenode] {r4};
  \node[right=1.5cm of r1] (s2) [circlenode] {s2};
  \node[above=1cm of s2] (s1) [circlenode] {s1};
  \node[below=1cm of s2] (s3) [circlenode] {s3};
  \node[right=1.5cm of r3] (s4) [circlenode] {s4};
  \node[below=1cm of s4] (s5) [circlenode] {s5};
  \draw[fill=black] (s1.center) circle [radius=0.1cm];
  \draw[fill=black] (s5.center) circle [radius=0.1cm];
  \draw[->] (r1) -- (s2);
  \draw[->] (s2) -- (r2);
  \draw[->] (r3) -- (s4);
  \draw[->] (s4) -- (r4);
  \draw[->] (s1) to [out=180,in=90] (r1);
  \draw[->] (r1) to [bend right=45] (s3);
  \draw[->] (s3) to [bend right=45] (r2);
  \draw[->] (r2) to [bend right=45] node[auto,swap] {2} (s1);
  \draw[->] (r3) to [out=90,in=180] (s3);
\end{tikzpicture}
\end{document} 
1

Like this ?

\documentclass[tikz,border=5mm]{standalone}
%\usepackage{tikz}
\usetikzlibrary{positioning}
\tikzset{squarenode/.style = {
    shape  = rectangle,
    fill   = gray!50,
    draw   = black,
    thick,
    minimum height = 1cm,
    minimum width  = 1cm
}}

\tikzset{circlenode/.style = {
    shape  = circle,
    fill   = blue!20,
    draw   = blue,
    thick,
    minimum size = 1cm
}}

\tikzset{help lines/.style=very thin}
\tikzset{My Grid/.style={help lines,color=blue!50}}

\begin{document}
\begin{tikzpicture}
  %\draw[My Grid] (-5,-5) grid (15,15);
  \node (r1) at (-4,4) [squarenode] {r1};
  \node[right=4cm of r1] (r2) [squarenode] {r2};
  \node[below=3cm of r1] (r3) [squarenode] {r3};
  \node[right=4cm of r3] (r4) [squarenode] {r4};
  \node[right=1.5cm of r1] (s2) [circlenode] {s2};
  \node[above=1cm of s2] (s1) [circlenode] {s1};
  \node[below=1cm of s2] (s3) [circlenode] {s3};
  \node[right=1.5cm of r3] (s4) [circlenode] {s4};
  \node[below=1cm of s4] (s5) [circlenode] {s5};
  \draw[fill=black] (s1.center) circle [radius=0.1cm];
  \draw[fill=black] (s5.center) circle [radius=0.1cm];
  \draw[->] (r1) -- (s2);
  \draw[->] (s2) -- (r2);
  \draw[->] (r3) -- (s4);
  \draw[->] (s4) -- (r4);
  \draw[->] (s1) to [out=180,in=90] (r1);
  \draw[->] (r1) to [out=-90,in=180] (s3);% <--- same angle as (r3) to (s3)
  \draw[->] (s3) to [bend right=45] (r2);
  \draw[->] (r2) to [bend right=45] node[auto,swap] {2} (s1);
  \draw[->] (r3) to [out=90,in=180] (s3);
\end{tikzpicture}
\end{document} 

screenshot

  • Somehow the arrows in the example look more sophisticated with thick arrow heads. Are they the same? – subham soni Mar 4 at 8:56
  • these are stealth arrow – AndréC Mar 4 at 9:03
1

With arrows.meta you can customize the arrow heads and I would make all the connections uniform.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,arrows.meta}
\tikzset{squarenode/.style = {
    shape  = rectangle,
    fill   = gray!50,
    draw   = black,
    thick,
    minimum height = 1cm,
    minimum width  = 1cm
}}

\tikzset{circlenode/.style = {
    shape  = circle,
    fill   = blue!20,
    draw   = blue,
    thick,
    minimum size = 1cm
}}


\begin{document}
\begin{tikzpicture}[help lines/.style={very thin},My Grid/.style={help
lines,color=blue!50},>={Stealth[length=2mm,width=1.5mm]}]
  %\draw[My Grid] (-5,-5) grid (15,15);
  \node (r1) at (-4,4) [squarenode] {r1};
  \node[right=4cm of r1] (r2) [squarenode] {r2};
  \node[below=3cm of r1] (r3) [squarenode] {r3};
  \node[right=4cm of r3] (r4) [squarenode] {r4};
  \node[right=1.5cm of r1] (s2) [circlenode] {s2};
  \node[above=1cm of s2] (s1) [circlenode] {s1};
  \node[below=1cm of s2] (s3) [circlenode] {s3};
  \node[right=1.5cm of r3] (s4) [circlenode] {s4};
  \node[below=1cm of s4] (s5) [circlenode] {s5};
  \draw[fill=black] (s1.center) circle [radius=0.1cm];
  \draw[fill=black] (s5.center) circle [radius=0.1cm];
  \draw[->] (r1) -- (s2);
  \draw[->] (s2) -- (r2);
  \draw[->] (r3) -- (s4);
  \draw[->] (s4) -- (r4);
  \draw[->] (s1) to [out=180,in=90] (r1);
  \draw[->] (r1) to [out=-90,in=180] (s3);
  \draw[->] (s3) to [out=0,in=-90] (r2);
  \draw[->] (r2) to [out=90,in=00] node[auto,swap] {2} (s1);
  \draw[->] (r3) to [out=90,in=180] (s3);
\end{tikzpicture}
\end{document} 

enter image description here

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.