这是我的代码:
\documentclass[tikz,12pt]{standalone}
\usetikzlibrary{patterns}
\begin{document}
\begin{tikzpicture}[line width=1.5pt]
\coordinate (A) at (2,2);
\coordinate (B) at (2,1.2);
\coordinate (C) at (3,2);
\coordinate (D) at (3,1.2);
\draw[fill=white] (A) circle (0.5);
\draw[fill=white,pattern=north east lines, pattern color=black] (B) circle (0.5);
\draw[fill=white] (C) circle (0.5);
\draw[fill=white] (D) circle (0.5);
\end{tikzpicture}
\end{document}
当我使用时,pattern=north east lines
我可以看到带有图案的第一个圆圈到第二个圆圈。
如果我不使用,pattern=north east lines
我就会得到我想要看到的:第二个圆圈覆盖第一个圆圈。
但我需要第二个圆圈带有图案。
如果不使用的话如何解决这个问题\pgfdeclarelayer{background} \pgfsetlayers{background,main}
?
答案1
填充完成后即可使用postaction
和绘制图案。
\documentclass[tikz,12pt]{standalone}
\usetikzlibrary{patterns}
\begin{document}
\begin{tikzpicture}[line width=1.5pt]
\coordinate (A) at (2,2);
\coordinate (B) at (2,1.2);
\coordinate (C) at (3,2);
\coordinate (D) at (3,1.2);
\draw[fill=white] (A) circle (0.5);
\draw[fill=white,
postaction = {pattern=north east lines,pattern color=black}] (B) circle (0.5);
\draw[fill=white] (C) circle (0.5);
\draw[fill=white] (D) circle (0.5);
\end{tikzpicture}
\end{document}
答案2
在图形参数:填充图案TiKZ
您可以阅读文档中的部分内容
Instead of filling a path with a single solid color, it is also possible to fill it with a tiling pattern.
虽然没有明确说明,但看起来任何pattern
选项都会替换任何先前的fill
选项。当然,任何fill
选项都会替换任何pattern
一个。只需将fill=white
其放在pattern
代码中,看看会发生什么。
因此,如果您想要一个填充(不透明)图案,则需要在(postaction
)填充之后绘制它,同时绘制节点,如 Harish 的答案中所示。
另一个选择是preaction
在绘制节点及其填充图案之前进行填充()。
\documentclass[tikz,12pt]{standalone}
\usetikzlibrary{patterns}
\begin{document}
\begin{tikzpicture}[line width=1.5pt]
\coordinate (A) at (2,2);
\coordinate (B) at (2,1.2);
\coordinate (C) at (3,2);
\coordinate (D) at (3,1.2);
\draw[fill=white] (2,2) circle (0.5);
\draw[preaction={fill=white},
pattern=north east lines,pattern color=black] (B) circle (0.5);
\draw[fill=white] (C) circle (0.5);
\draw[fill=white] (D) circle (0.5);
\end{tikzpicture}
\end{document}