tikz - 如何使用 tikz 淡化此示例路径

tikz - 如何使用 tikz 淡化此示例路径

看看这个图像,淡入淡出路径怎么会一样呢? 在此处输入图片描述

提供更多详细信息:

  1. 如果我们仅提供顶部/中部/底部颜色,就像下面的代码一样:

    \addplot[fill opacity=1,top color=white,bottom color=white,middle color=black] 在 [of=A 和 B] 之间填充;

结果图片为:

在此处输入图片描述

  1. 如果我们仅像下面的代码一样输入左/中/右颜色:

    \addplot[fill opacity=1,left color=white,right color=white,middle color=black] 在 [of=A 和 B] 之间填充;

结果图片为:

在此处输入图片描述

此案例更像是参考重复案例。

但原始图片的褪色是沿着曲线的方向进行的,颜色从中心到边界逐渐褪色。所以它非常特殊。

薛定谔的猫的答案只是做了一种工作,多次绘制淡入淡出并逐一缩小,然后它只是模拟了这种效果。由于将绘图分成一个循环,所以肯定很慢。但这正是我们想要的。

答案1

如果问题是是否有可能编造一个与你所展示的情节相似的情节,那么答案是肯定的。

\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{fillbetween}
\begin{document}
\begin{tikzpicture}
    \begin{axis}[declare function={f(\x,\y)=tanh((1840+\y-\x)/200)*\x/1.8;},
        scaled y ticks=false,
        xmin=0,xmax=1800,ymin=0,ymax=1100,
        yticklabel={\pgfmathparse{\tick/1000}\pgfmathprintnumber\pgfmathresult}
    ]
    \addplot[domain=0:2000,samples=201] 
    {f(x,0)};
    \pgfplotsinvokeforeach{1,...,20}{
    \addplot[domain=0:2000,samples=201,name path=A,draw=none] 
    {(1+#1/400)*f(x,5*#1)};
    \addplot[domain=0:2000,samples=201,name path=B,draw=none] 
    {(1-#1/400)*f(x,-5*#1)};
    \addplot [black,fill opacity=0.1] fill between [of=A and B];
    }
    \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

如果这里的函数是可逆的,那么使用曲面图的方法会更简单。

相关内容