如何绘制“波浪形”的方框序列

如何绘制“波浪形”的方框序列

我对 TikZ 还很陌生,遇到了一个小问题,我不完全确定如何解决。

假设我生成如下的框序列:

 \documentclass{report}
 \usepackage{tikz}

 \begin{document}
 \begin{tikzpicture}
 \foreach \x in {1,2,...,5}{
      \draw (\x,0) -- (\x+1,0) -- (\x+1,1) -- (\x,1) -- cycle;
 }
 \end{tikzpicture}
 \end{document}

我怎样才能在序列中引入“波浪”效果,使得盒子适合以下形状:

 \documentclass{report}
 \usepackage{tikz}

 \begin{document}
 \begin{tikzpicture}
 \draw (0,0) .. controls (2.5,0.5) and (7.5,-0.5) .. (10,0) -- (10,1) .. controls (7.5,0.5) and (2.5,1.5) .. (0,1) -- cycle;
 \end{tikzpicture}
 \end{document}

我还想用 为这些框着色fill=,所以我需要将它们识别为独立实体。

答案1

如果您知道波形的曲线,则可以使用plot中的命令tikz。我认为没有必要使用您在 MWE 中给出的样条曲线,因此我用看起来类似的正弦波替换了它:

\begin{tikzpicture}
  \foreach \x in {1,2,...,5} {
    \draw (\x,0) .. controls (\x+0.25,0.5) and (\x+0.75,-0.5) .. (\x+1,0) -- (\x+1,1)  .. controls (\x+0.75,0.5) and (\x+0.25,1.5) .. (\x,1) -- cycle;
  }
\end{tikzpicture}

正弦波

然后,只需使用相同的函数来绘制框:

\begin{tikzpicture}
  \draw[domain=0:10] (0,0) -- plot (\x,{0.2*sin(\x*36)}) -- plot (10-\x,{1-0.2*sin(\x*36)}) -- cycle;
\end{tikzpicture}

一波盒子

相关内容