在手册第 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}