![TikZ 褪色速度](https://linux22.com/image/247664/TikZ%20%E8%A4%AA%E8%89%B2%E9%80%9F%E5%BA%A6.png)
在褪色的例子中 TikZ 示例
我想改变淡入淡出的“速度”。事实上,我希望它非常“清晰”,这样在正方形示例中,您基本上只能看到大约半个正方形,因为它淡入淡出得非常快。
有什么想法可以实现吗?(基本上,我想覆盖两个具有不同颜色的正方形,最终看到半个正方形是一种颜色,另一半是另一种颜色,但两者在中心之间有一种快速淡入淡出(而不是默认 tikz 设置提供的逐渐淡入淡出)
答案1
默认情况下,没有用于设置线性着色颜色之间过渡速度的选项。不过,您可以相对轻松地添加它。这是一种fading speed=<0..100>
允许设置标准axis
着色过渡速度的新样式。
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\makeatletter
\tikzset{
fading speed/.code={
\pgfmathtruncatemacro\tikz@startshading{50-(100-#1)*0.25}
\pgfmathtruncatemacro\tikz@endshading{50+(100-#1)*0.25}
\pgfdeclareverticalshading[%
tikz@axis@top,tikz@axis@middle,tikz@axis@bottom%
]{axis#1}{100bp}{%
color(0bp)=(tikz@axis@bottom);
color(\tikz@startshading)=(tikz@axis@bottom);
color(50bp)=(tikz@axis@middle);
color(\tikz@endshading)=(tikz@axis@top);
color(100bp)=(tikz@axis@top)
}
\tikzset{shading=axis#1}
}
}
\makeatother
\begin{tikzpicture}[top color=blue, bottom color=yellow]
\foreach \speed [count=\count] in {0,25,...,100}{
\fill [fading speed=\speed] (\count,0) rectangle +(1,2);
\path (\count,0) +(0.5,2) node [text=white,anchor=north] {\speed};
}
\end{tikzpicture}
\end{document}