# Is it possible to increase the line's width from its start to its end?

I was wondering if it is possible to let the line's width dynamically increase from its start to its end. I found such an illustration in a book:

I am a TikZ noob but what I came up with would be the following starting point:

\documentclass{standalone}
\usepackage{xcolor}
\definecolor{darkred}{cmyk}{0,.81,.75,.37}
\usepackage{tikz}
\usetikzlibrary{arrows}

\begin{document}
\begin{tikzpicture}
\coordinate (S) at (1,1);
\coordinate (E) at (5,1);

\draw [darkred,dashed,bend angle=30,bend left,->,>=triangle 45,line width=1.5pt] (S) to (E);

\end{tikzpicture}
\end{document}


which yields the following result:

Does anybody know if it is possible to achive the desired result?

• – Ignasi Oct 3 '15 at 9:53
• Note that arrows is deprecated and tikz already loads xcolor. – cfr Oct 27 '16 at 1:41

Someone could make it prettier, but something with the decorations and markings libraries

\documentclass{article}
\usepackage{xcolor}
\definecolor{darkred}{cmyk}{0,.81,.75,.37}
\usepackage{tikz}
\usetikzlibrary{arrows,decorations,decorations.markings}
\newdimen\zzlen
\zzlen=.6pt
\begin{document}
\begin{tikzpicture}[decoration={markings,
mark=between positions 0 and .85step 9pt
with { \node [fill=red,
,transform shape] {%
\textcolor{red}{\rule{.5pt}{%
\pgfkeysvalueof{/pgf/decoration/mark info/sequence number}\zzlen}}};}}]
\coordinate (S) at (1,1);
\coordinate (E) at (5,1);

\draw [white,bend angle=30,bend left,-{>[red]},>=triangle 45,
line width=3pt,postaction={decorate}]
(S)to (E);

\end{tikzpicture}

\end{document}


This is a simple construction that is compatible with dash pattern.

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing}

\begin{document}

\tikzset{
fan/.style={
decorate,
decoration={
show path construction,
curveto code={
\foreach\i in{1,...,50}{
\draw[dash pattern=on1off2on2off2on4off2on8off2on3off2on2off2]
[shift={(\tikzinputsegmentfirst)}][scale=-1][rotate=\i/10]
[shift={(\tikzinputsegmentfirst)}][scale=-1]
(\tikzinputsegmentfirst)..controls(\tikzinputsegmentsupporta)
and(\tikzinputsegmentsupportb)..(\tikzinputsegmentlast);
}
}
}
}
}

\begin{tikzpicture}
\coordinate (S) at (1,1);
\coordinate (E) at (5,1);
\draw[bend angle=30,bend left,fan](S)to(E);
\end{tikzpicture}

\end{document}