在不同路径上填充 + 图案与在同一路径上填充 + 图案

在不同路径上填充 + 图案与在同一路径上填充 + 图案

为什么以下 LaTeX 稿件

\documentclass[tikz,convert]{standalone}
\usetikzlibrary{patterns}
\begin{document}
\begin{tikzpicture}[color=black]
  \path[fill=red] (0,0) rectangle (1,1);
  \path[pattern=bricks] (0,0) rectangle (1,1);
\end{tikzpicture}
\end{document}

生产红砖:

红砖

将两\path行合并为一行,如下所示:

\path[fill=red, pattern=bricks] (0,0) rectangle (1,1);

生产白砖:

白砖

砖块图案中的砖块内部要么是透明的,要么不是。如果它是透明的,为什么在第二种情况下红色填充不会显示出来?如果它不是透明的,为什么在第一种情况下红色填充会显示出来?

答案1

在第一种情况下,您有两个不同的\path,因此首先绘制红色矩形,然后pattern在其上绘制 。由于pattern仅绘制黑线(它不填充黑线之间的部分),因此您会看到下面的红色。

在第二种情况下,因为你patternfill相同的 \path, 这pattern 取代手册fill上说

图案的作用类似于填充颜色。具体来说,设置新的填充颜色将再次用纯色填充路径。

因此,fill=red, pattern=bricksfill忽略 ,只绘制pattern。同样,如果交换顺序 ( pattern=bricks,fill=red),则只fill绘制 。

如果您想在一条路径中执行这两项操作,则可以使用preactionpostaction

\documentclass[tikz]{standalone}
\usetikzlibrary{patterns}
\begin{document}
\begin{tikzpicture}[color=black]
  \path[fill=red,postaction={pattern=bricks}] (0,0) rectangle (1,1);

  \path[preaction={fill=blue},pattern=bricks] (1,0) rectangle (2,1);
\end{tikzpicture}
\end{document}

相关内容