![TikZ - 如何引用和重新绘制之前绘制的图层](https://linux22.com/image/353430/TikZ%20-%20%E5%A6%82%E4%BD%95%E5%BC%95%E7%94%A8%E5%92%8C%E9%87%8D%E6%96%B0%E7%BB%98%E5%88%B6%E4%B9%8B%E5%89%8D%E7%BB%98%E5%88%B6%E7%9A%84%E5%9B%BE%E5%B1%82.png)
我有一个由第 1 层上的正方形、顶部的四个圆盘(构成第 2 层)和顶部的蓝色字母(构成第 3 层)组成的图形。如下所示:
我怎样才能引用“第 1 层 - 第 2 层的减法”,即属于正方形但不属于磁盘的间隙空间 - 并将其重新绘制在顶部作为第 4 层,这样字母的某些部分将会消失,只有磁盘顶部的部分才会可见。
当前图形的代码是:
\documentclass{minimal}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale=2]
%Layer 1:
\shade (0,0) rectangle (4,4);
%Layer 2:
\shade (1,1) circle [radius=1];
\shade (3,1) circle [radius=1];
\shade (1,3) circle [radius=1];
\shade (3,3) circle [radius=1];
%Layer 3:
\node [shift={(1.0cm, 5.5cm)}, anchor=north west,rotate=20] (A) {
\textcolor{blue}{\fontsize{180pt}{11pt}\selectfont{\textbf{A}}}
};
\end{tikzpicture}
\end{document}
答案1
您可以使用clip
操作:
\documentclass{standalone}
\usepackage{tikz}
\usepackage{lmodern}
\begin{document}
\begin{tikzpicture}[scale=2]
% Layer 1:
\shade (0,0) rectangle (4,4);
% Layer 2:
\shade (1,1) circle [radius=1];
\shade (3,1) circle [radius=1];
\shade (1,3) circle [radius=1];
\shade (3,3) circle [radius=1];
% Clip
\clip
(1,1) circle [radius=1]
(3,1) circle [radius=1]
(1,3) circle [radius=1]
(3,3) circle [radius=1];
% Layer 3:
\node [shift={(1.0cm, 5.5cm)}, anchor=north west,rotate=20,
color=blue,font=\fontsize{180pt}{180pt}\selectfont]
(A) {\textbf{A}};
\end{tikzpicture}
\end{document}