自动生成 tikzfading

自动生成 tikzfading

我有类似的问题TikZ 褪色速度直接在填充命令中定义淡入淡出样式但我不知道如何得到一个好的解决方案。给定一个从 0 到 100 的递增整数列表,我想生成以下代码:

\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usetikzlibrary{positioning,fit,calc}
\usetikzlibrary{shapes.arrows,chains,decorations.pathreplacing,fadings}
\begin{document}    
\tikzfading[name=fade right0,left color=transparent!0, right color=transparent!70]
\tikzfading[name=fade right1,left color=transparent!70, right color=transparent!100]
\begin{tikzpicture}[start chain=1 going right,node distance=-0.15mm]
    \node [on chain=1] at (-1.5,-.4) {\ldots};
    \node [draw,dashed,on chain=1] {};
    \node [draw,dashed,on chain=1] {};
    \node [draw, dashed, path fading=fade right0, on chain=1] {};
    \node [draw, dashed, path fading=fade right1, on chain=1] {};
\end{tikzpicture}
\end{document}

这里,显然我的列表是 {0, 70, 100}。我想foreach在里面使用循环tikzpicture,但我无法将 放在\tikzfading里面tikzpicture,而且我无法使用上述帖子中的答案,有人能帮帮我吗?

谢谢

答案1

你可以通过以下方式进行

\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{chains,fadings}
\def\lastx{0}
\foreach \x[remember=\x as \lastx,count=\xi from 0] in {20,40,70,100}{
\tikzfading[name=fade right\xi,left color=transparent!\lastx, right color=transparent!\x]
}
\begin{document}    

\begin{tikzpicture}[start chain=1 going right,node distance=-0.15mm,]
    \node [fill, dashed, path fading=fade right0, on chain=1] {};
    \node [fill, dashed, path fading=fade right1, on chain=1] {};
    \node [fill, dashed, path fading=fade right2, on chain=1] {};
    \node [fill, dashed, path fading=fade right3, on chain=1] {};
\end{tikzpicture}
\end{document}

canaaerus 发现这个initially选项会造成一些麻烦。另一个问题中我也遇到了同样的问题,但我找不到它。最好\lastx在循环之外定义。

在此处输入图片描述

相关内容