在 tikz 中绘制线条并改变颜色

在 tikz 中绘制线条并改变颜色

我有以下使用线条\draw(见下面的 MWE)。我想让线条的颜色发生变化,从右侧的红色变为左侧的蓝色。目前的尝试是添加淡入淡出区域,而不是更改线条本身的颜色。

注意此解决方案percusse 提供了一种解决方案,使用自定义淡入淡出,但我不知道如何编辑它以获得我想要的效果。我理想情况下希望添加一个编辑来\draw[...]实现此效果。

平均能量损失

\documentclass[tikz]{standalone}

\begin{document} 

\begin{tikzpicture}
\draw [ultra thick,red] (-19.5,-16) to[out=55,in=228] (-14,-9) to [out=45,in=180] (0,-2) to[out=0,in=135] (14, -9) to[out=315,in=125] (20,-16);       
\end{tikzpicture}

\end{document}

答案1

如果你想要阴影,我有一个(肮脏的)但快速的解决方案。使用shade并在前面添加一个填充的白色版本:

\documentclass[tikz,border=1cm]{standalone}

\pgfdeclarelayer{background}
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground}

\begin{document} 

\begin{tikzpicture}
    \fill[fill=white] (-19.35,-16.01) to[out=55,in=228] (-13.8,-9) to [out=45,in=180] (0,-2.15) to[out=0,in=135] (13.8, -9) to[out=315,in=125] (19.85,-16.01); 
    
    \begin{pgfonlayer}{background} 
            \shade[left color=blue, right color=red, very thick] (-19.5,-16) to[out=55,in=228] (-14,-9) to [out=45,in=180] (0,-2) to[out=0,in=135] (14, -9) to[out=315,in=125] (20,-16);  
        \end{pgfonlayer} 
   
\end{tikzpicture}


\end{document}

我认为这就是您想要的效果,无需任何自定义淡入淡出。 在此处输入图片描述

相关内容