我有一个矩形填充域,需要在向左和向下移动时淡出。我在它们相遇的地方遇到了淡出问题。这是我的 MWE:
\documentclass[10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{fadings}
\begin{document}
\begin{tikzpicture}
\fill[red] (1,1) rectangle (2,2);
\fill[red,path fading=west] (1,1) -- (1,2) -- (0,2) -- (0,0) -- (1,1);
\fill[red,path fading=south] (1,1) -- (0,0) -- (2,0) -- (2,1) -- (1,1);
\end{tikzpicture}
\end{document}
输出为:
似乎有两个问题:
- 在对角线附近,褪色似乎不一致(比垂直或水平移动远离对角线时红色更深)。
- 有一条非常细的白色对角线,见下图(放大)。
我怎样才能摆脱或解决这些问题?
答案1
这绝不是一个完整的答案,而是一些关于如何改善某些查看器的输出的建议。一个建议是使用剪辑,另一个建议是更改左下象限的淡入淡出。
\documentclass[10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{fadings}
\begin{document}
\begin{tikzpicture}
\fill[red] (1,1) rectangle (2,2);
\begin{scope}
\clip (1,1) |- (0,2) -- (0,0) -- cycle;
\fill[red,path fading=west] (0,0) rectangle (1,2);
\end{scope}
\begin{scope}
\clip (1,1) -- (0,0) -| (2,1) -- cycle;
\fill[red,path fading=south] (0,0) rectangle (2,1);
\end{scope}
\end{tikzpicture}
\tikzfading[name=fade out,inner color=transparent!0,outer color=transparent!100]
\begin{tikzpicture}
\fill[red] (1,1) rectangle (2,2);
\begin{scope}
\clip (0,1) rectangle (1,2);
\fill[red,path fading=west] (0,0) rectangle (1,2);
\end{scope}
\begin{scope}
\clip (1,0) rectangle (2,1);
\fill[red,path fading=south] (0,0) rectangle (2,1);
\end{scope}
\begin{scope}
\clip (0,0) rectangle (1,1);
\fill[red,path fading=fade out] (0,0) rectangle (2,2);
\end{scope}
\end{tikzpicture}
\end{document}
当我在 MacOS 上使用预览放大第二张图片时,我得到了
然而,在不同的缩放级别下,会出现一些非常微弱的白线
讽刺的是,这些是 Acrobat 阅读器中相同放大倍数(300%)下的红线。
pgf 手册在各处提到了这些查看器问题。
我建议你不要过早接受这个答案。也许其他人有更完整甚至更真实的解决方案。