不同路徑上的填滿+圖案與同一路徑上的填滿+圖案

不同路徑上的填滿+圖案與同一路徑上的填滿+圖案

為什麼下面的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

在第一種情況下,您有兩個不同的\paths,因此首先繪製紅色矩形,然後pattern在頂部繪製 。由於pattern只繪製黑線(它不填充之間的部分),因此您會看到下面的紅色。

在第二種情況下,因為您patternfill相同的 \path, 這pattern 取代fill。手冊說

此圖案的作用類似於填滿顏色。特別是,設定新的填滿顏色將再次用純色填滿路徑。

因此,fill=red, pattern=bricksfill忽略,並且僅pattern繪製 。同樣,如果交換順序 ( pattern=bricks,fill=red),則僅fill繪製 。

如果您想在一條路徑中執行這兩項操作,可以使用 apreaction或 a postaction

\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}

相關內容