2

I try to use tikz to draw the arrows like the blue ones, but so far I can draw only the red one and it is not as expected. Here my code so far, it is time consuming so please if anyone has better solutions to draw the blue ones. Thanks.

\begin{figure}[!htbp]
\begin{center}
\begin{tikzpicture}
\draw [<->,very thick] (0,6) -- (0,0) -- (8,0);
\draw [->, thick,red] (3.8,1.7)  -- (3.6,1.8);
\draw [->,thick,red] (6,6) to [out=110,in=-20] (5.75,6.25);
\draw [->,thick,red] (5.75,6.25) to[out=160,in=-20] (5.5,6.35);
\draw [->,thick,red] (5.5,6.35) to[out=160,in=50] (5,6.10);
\draw [->,thick,red] (5,6.10) to[out=-130,in=60] (4.75,5.75);
\end{tikzpicture}

enter image description here

DB225681
  • 147
  • 1
    see of decorations.markins can help you. see second example on page 636, tikz & pgf manual, v 3.1.1. – Zarko Feb 13 '19 at 23:24

1 Answers1

7

You can bend arrows, and with the arc arrow style you can place them along a path such that they get bent along the path, and the /.list key allows you to draw several of them. With these preparations you may cook down the code to something like

\draw[red,very thick,my arrow/.list={0.2,0.45,0.7},-{Stealth[length=2mm,bend]}] 
 (6,6) to [out=110,in=60,looseness=1.4] (4.75,5.75);

Complete MWE:

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{arrows.meta,bending,decorations.markings}
% source: https://tex.stackexchange.com/a/430239/121799
\tikzset{% inspired by https://tex.stackexchange.com/a/316050/121799
    arc arrow/.style args={%
    to pos #1 with length #2}{
    decoration={
        markings,
         mark=at position 0 with {\pgfextra{%
         \pgfmathsetmacro{\tmpArrowTime}{#2/(\pgfdecoratedpathlength)}
         \xdef\tmpArrowTime{\tmpArrowTime}}},
        mark=at position {#1-\tmpArrowTime} with {\coordinate(@1);},
        mark=at position {#1-2*\tmpArrowTime/3} with {\coordinate(@2);},
        mark=at position {#1-\tmpArrowTime/3} with {\coordinate(@3);},
        mark=at position {#1} with {\coordinate(@4);
        \draw[-{Stealth[length=#2,bend]}]       
        (@1) .. controls (@2) and (@3) .. (@4);},
        },
     postaction=decorate,
     }
}
\begin{document}
\begin{tikzpicture}[my arrow/.style={arc arrow=to pos #1 with length 2mm}]
 \draw[red,very thick,my arrow/.list={0.2,0.45,0.7},-{Stealth[length=2mm,bend]}] 
 (6,6) to [out=110,in=60,looseness=1.4] (4.75,5.75);
\end{tikzpicture}
\end{document}

enter image description here

Or, in case you want these gaps, you could use the show path construction decoration.

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{arrows.meta,bending,decorations.pathreplacing}
% source: https://tex.stackexchange.com/a/430239/121799
\tikzset{multiple arrows/.style={decorate,decoration={show path construction,
 curveto code={
      \draw [#1] (\tikzinputsegmentfirst) .. controls
        (\tikzinputsegmentsupporta) and (\tikzinputsegmentsupportb)
        ..(\tikzinputsegmentlast);
    },}}}
\begin{document}
\begin{tikzpicture}
\draw [multiple arrows={red,thick,-{Stealth[length=2mm,bend]}}] 
(6,6) to [out=110,in=-20] (5.75,6.25)
 to[out=160,in=-20] (5.5,6.35) to[out=160,in=50] (5,6.10) 
 to[out=-130,in=60] (4.75,5.75);
\end{tikzpicture}
\end{document}

enter image description here