我有一张复杂的 TikZ 图片,宽度为 10cm。我想在其他地方使用同一张图片,但只想显示图片的左侧 5cm。为了获得“更平滑”的外观,我希望接下来的 1cm 有淡入淡出效果,即我希望正常看到 0cm - 5cm,5cm 到 6cm 的线性“淡出”,6cm - 10cm 处没有任何内容(=透明或剪切)。这在 TikZ 中可行吗?标准path fading
似乎scope fading
不支持这样的自定义。
答案1
首先,我将一张 10 厘米宽的图片放入保存框。原始 tikzpicture 也可以这样做。然后我创建了两张 6 厘米宽的带褪色边缘的副本。
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{fadings}
\newsavebox{\mybox}
\begin{document}
\savebox{\mybox}{\includegraphics[width=10cm]{example-image}}%
%
\begin{minipage}{6cm}% only needed for standalone class
\noindent\begin{tikzpicture}
\clip (0,0) rectangle (6cm,\ht\mybox);
\node[above right,inner sep=0pt] at (0,0) {\usebox{\mybox}};
\fill[white,path fading=west]
(5cm,0) rectangle (6cm,\ht\mybox);
\end{tikzpicture}
\noindent\begin{tikzpicture}
\clip (0,0) rectangle (6cm,\ht\mybox);
\node[above left,inner sep=0pt] at (6cm,0) {\usebox{\mybox}};
\fill[white,path fading=east]
(0,0) rectangle (1cm,\ht\mybox);
\end{tikzpicture}
\end{minipage}
\end{document}