在 TikZ 中填充包含装饰的路径时出现的问题

在 TikZ 中填充包含装饰的路径时出现的问题

我想构造一个矩形,其中两条边略有曲率,另外两条边是锯齿线。最后,我想填充它。虽然路径的构造按我预期的方式进行,但填充却没有。我该如何告诉 TikZ 填充这个矩形内的区域?

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{intersections, decorations}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}[scale=2]

\coordinate (A) at (0,0);
\coordinate (B) at (8,0);
\coordinate (C) at (8,2);
\coordinate (D) at (0,2);

\begin{scope}[decoration=zigzag]
\def\mypath{ (A)  to[out=10,in=170] (B)
decorate[decoration=zigzag] {(B)-- (C)}  (C) to[out=170,in=10] (D)
decorate[decoration=zigzag]{(D)--(A)}
  };
  \draw [fill=red] \mypath;
\end{scope}
\end{tikzpicture}
\end{document}

答案1

您通过重复坐标名称将路径拆分成多个部分(B)(D)因此每个部分都是单独填充的。删除括号内的坐标名称(以及额外的(C))即可解决问题。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.pathmorphing}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (2,0);
\coordinate (C) at (2,2);
\coordinate (D) at (0,2);
\begin{scope}[decoration=zigzag]
  \draw[fill=red] (A) to[out=10,in=170] (B) 
                decorate {-- (C)}  
                to[out=170,in=10] (D) 
                decorate {--(A)};
\end{scope}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容