tikzfadingfrompicture 与 fit fading=false (潜在错误)

tikzfadingfrompicture 与 fit fading=false (潜在错误)

在手册第 361 页中写道fit fading

/tikz/fit fading=⟨boolean⟩ (默认 true,最初为 true)

设置为 true 时,淡入淡出会移动并调整大小(与阴影完全相同),以便覆盖当前路径。设置为错误的,淡入淡出只会移动,使其位于路径中心,而不会调整大小。这对于特殊用途的淡入淡出很有用,例如当您使用淡入淡出来“打出”某些东西时。

fit fading=false移动tikzfadingfrompicture,以便其中心位于路径的中心。在此示例中:

\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{fadings}
\begin{tikzfadingfrompicture}[name=myfading]
\fill[transparent!0] (2,2) rectangle (3,5);
\end{tikzfadingfrompicture}
\begin{document}
\begin{tikzpicture}
\fill[
  path fading=myfading,
  fit fading=false,
  preaction={draw},
] (-1,-4) rectangle (7,2);
\fill[red] (0,0) circle[radius=0.1];
\end{tikzpicture}
\end{document}

正方形、实心矩形和红点

可以看出,tikzfadingfrompicture不是以路径中心为中心,而是以 为中心(0,0)。这是一个错误,还是我不明白什么?

答案1

我无法判断这是一个错误还是预期的行为,但是使用fading transform,您可以轻松地将淡入淡出的中心转移到当前边界框的中心(或任何参考系统):

\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{fadings}

\begin{tikzfadingfrompicture}[name=myfading]
\fill[transparent!0] (2,2) rectangle (3,5);
\end{tikzfadingfrompicture}

\begin{document}
\begin{tikzpicture}

\fill[
  path fading=myfading,
  fit fading=false,
  preaction={draw},
  fading transform={shift={(current bounding box.center)}} 
] (-1,-4) rectangle (7,2);

\fill[red] (0,0) circle[radius=0.1];

\fill[yellow] (current bounding box.center) circle[radius=0.1];

\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容