Как бы вы нарисовали стрелку, заполненную градиентом?

Как бы вы нарисовали стрелку, заполненную градиентом?

Я хочу нарисовать несколько больших стрелок, заполненных градиентами в разных местах. Как бы вы это сделали?

Я новичок в тикзе и латексе и пришел к следующему (некрасивому) решению:

   \def\y{0.4}
   \def\x{0.2}
    \newcommand\verticalarrow[2]{
        (0,0) -- (#1,0) -- (#1,#2-\y) -- (#1+\x,#2-\y) -- (#1/2,#2) -- 
        (-\x,#2-\y) -- (0,#2-\y) -- (0,0)
    }

    \draw[bottom color=white, top color=gray, very thin] \verticalarrow{0.15}{4};

Это сложно, и пока я не знаю, как определить местонахождение стрелок...

решение1

Я бы использовал \nodeс single arrowформой, которая предоставляется библиотекой shapes.arrows. Форму можно настраивать довольно гибко:

\documentclass{article}
\usepackage{tikz}

\usetikzlibrary{shapes.arrows, fadings}
\begin{document}
\begin{tikzpicture}[every node/.append style={draw=gray, left color=white, single arrow}]
\node [
    right color=orange,
    single arrow,
    minimum height=1cm
] {};

\node at (0,-1) [
    right color=blue!50!cyan,
    single arrow,
    minimum height=1cm,
    shading angle=90+60,
    rotate=60
] {};

\node at (1,0) [
    right color=red!80!black,
    single arrow,
    single arrow head extend=0.4cm,
    single arrow tip angle=110,
    single arrow head indent=0.1cm,
    minimum height=2cm,
    inner sep=1pt,
    shading angle=90+90,
    rotate=90
] {};


\end{tikzpicture}
\end{document}

Связанный контент