我想构造一个矩形,其中两条边略有曲率,另外两条边是锯齿线。最后,我想填充它。虽然路径的构造按我预期的方式进行,但填充却没有。我该如何告诉 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}