白色透明色为什么会变成灰色?

白色透明色为什么会变成灰色?

我正在尝试制作一个在 tikz 中使用透明度的图形。该图形由两个重叠的矩形组成。一个向右淡出,另一个向左淡出。向右淡出的矩形很容易制作:

\fill[shading=axis, left color=blue, right color=white] (0, 1) rectangle (3, 3);

但是,我无法按自己的意愿制作另一个矩形。我希望它左边是白色,右边是蓝色。它还必须是透明的(alpha 值等于 70%)。我尝试了多种方法,例如在命令\tikzfading中使用或定义不透明度级别\fill。这是一个 [mcve]:

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{fadings}

\begin{document}
%leftmost figure
\begin{tikzpicture}
  \tikzfading[name=fade right,
  left color=transparent!0,
  right color=transparent!100]
  \tikzfading[name=fade left,
  right color=transparent!0,
  left color=transparent!70!white]

  \fill[blue, path fading=fade right] (0, 1) rectangle (3, 3);
  \fill[blue, path fading=fade left] (0, 0) rectangle (2, 2.5);
\end{tikzpicture}

%middle figure
\begin{tikzpicture}
  \fill[shading=axis, left color=blue, right color=white] (0, 1) rectangle (3, 3);
  \fill[shading=axis, left color=white!70!transparent, right color=blue] (0, 0) rectangle (2, 2.5);
\end{tikzpicture}

%rightmost figure
\begin{tikzpicture}
  \fill[shading=axis, left color=blue, right color=white] (0, 1) rectangle (3, 3);
  \fill[shading=axis, left color=white, right color=blue, opacity=.7] (0, 0) rectangle (2, 2.5);
\end{tikzpicture}
\end{document}

结果如下: enter image description here

虽然最左边的图形左侧的第二个矩形是透明的,但它没有在第一个矩形上应用白色滤镜。在第二个图形上,这个矩形没有任何透明度属性。最后,最右边的图形的矩形确实具有透明度,但不透明度级别等于 0.7 的白色变为灰色。我想要实现的是绘制一个矩形,其 RGB 颜色为 255,255,255,左侧的 alpha 值约为 180。这可能吗?

答案1

如果你\fill\shade中间和右边的数字代替,你会得到

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{fadings}

\begin{document}
%leftmost figure
\begin{tikzpicture}
  \tikzfading[name=fade right,
  left color=transparent!0,
  right color=transparent!100]
  \tikzfading[name=fade left,
  right color=transparent!0,
  left color=transparent!70!white]

  \fill[blue, path fading=fade right] (0, 1) rectangle (3, 3);
  \fill[blue, path fading=fade left] (0, 0) rectangle (2, 2.5);
\end{tikzpicture}

%middle figure
\begin{tikzpicture}
  \shade[shading=axis, left color=blue, right color=white] (0, 1) rectangle (3, 3);
  \shade[shading=axis, left color=white!70!transparent, right color=blue] (0, 0) rectangle (2, 2.5);
\end{tikzpicture}

%rightmost figure
\begin{tikzpicture}
  \shade[shading=axis, left color=blue, right color=white] (0, 1) rectangle (3, 3);
  \shade[shading=axis, left color=white, right color=blue, opacity=.7] (0, 0) rectangle (2, 2.5);
\end{tikzpicture}
\end{document}

enter image description here

那是你要的吗?

相关内容