1

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

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

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

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.