TikZ:偏移填充图案

TikZ:偏移填充图案

TikZ 提供填充模式(文档中的第 15.5.1 节)。

除了用单一纯色填充路径外,还可以用平铺图案填充路径。想象一下,一个小平铺包含一个像星星一样的简单图片。然后这些平铺(概念上)在所有方向上无限重复,但与路径相切。

有没有选项可以偏移图案?这样图案边缘的瓷砖(概念上)就会在特定位置被切断?

我尝试pattern与之结合clip,但没有任何改变。

\clip (0, 0) rectangle (1, 1);
\fill [pattern color=black, pattern=fivepointed stars] (-0.8, -0.7) rectangle (1, 1);

两个都

\documentclass[]{standalone}
\usepackage{tikz}
\usetikzlibrary{patterns}
\begin{document}
\begin{tikzpicture}
\fill[pattern color=black, pattern=fivepointed stars] (0, 0) rectangle (1, 1);
\end{tikzpicture}
\end{document}

\documentclass[]{standalone}
\usepackage{tikz}
\usetikzlibrary{patterns}
\begin{document}
\begin{tikzpicture}
\clip (0, 0) rectangle (1, 1);
\fill[pattern color=black, pattern=fivepointed stars] (-0.2, -0.3) rectangle (1, 1);
\end{tikzpicture}
\end{document}

生产

在此处输入图片描述

我正在寻找一种方法来获得这样的东西

在此处输入图片描述

与第一张图纸相比,该图案只是略有偏移。

答案1

使用patterns.meta库可以定义shifting某些模式。

\documentclass[]{standalone}
\usepackage{tikz}
\usetikzlibrary{patterns,patterns.meta}
\begin{document}
\begin{tikzpicture}
\draw[pattern=Stars, pattern color=red] (0,0) rectangle +(1, 1);

\draw[pattern={Stars[xshift=2pt,yshift=3pt]}, pattern color=blue] (0,0) rectangle +(1, 1);
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

pgfmanual.pdfTikz 和 PGF 的文档 v. 3.1.4b,第 1152 页中,我们读到:

其次,模式阶段定义不明确,也就是说,“第一个”图块的原点在哪里并不明确。更准确地说,PostScript 和 pdf 与 svg 对原点的定义不同。PostScript 和 pdf 定义了一个固定的原点,与路径所在的位置无关。这具有非常理想的效果,即如果您使用相同的模式填充多个路径,则结果与填充由所有这些路径的并集组成的单个路径相同。相比之下,svg 使用要填充的路径的左上角(?)作为原点。但是,svg 规范在这个问题上有点含糊。

因此,你的问题的答案是:

相关内容