![如何绘制“波浪形”的方框序列](https://linux22.com/image/322108/%E5%A6%82%E4%BD%95%E7%BB%98%E5%88%B6%E2%80%9C%E6%B3%A2%E6%B5%AA%E5%BD%A2%E2%80%9D%E7%9A%84%E6%96%B9%E6%A1%86%E5%BA%8F%E5%88%97.png)
我对 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}