TikZ - 可以實現完全漸進的水平淡入淡出嗎?

TikZ - 可以實現完全漸進的水平淡入淡出嗎?

我想淡化左側和右側的一些文字。我希望褪色在視覺上:

  • 進步
  • 完成(即:當淡入淡出結束時,文字變得不可見)

我沒有找到任何這樣的例子。

我將用 5 個例子來說明我的嘗試。我的淡入淡出是從右到左,並在文字的左三分之一處結束。

在文字 A 和 B 上,我使用了白色漸層。在文字 C、D、E 上,我使用藍色漸層。

我測試了兩種策略:

  1. 使用 tikzfading(範例 A)。但我的文字並沒有變得完全不可見。褪色並不「完全」。
  2. 繪製多個微小的垂直條紋。我不喜歡這個方法,但結果更符合我的期望。但是當我列印文件或放大時,我可以看到條紋:-(

我怎麼能像B(或C)那樣完全褪色,但沒有條紋?

\documentclass[tikz]{standalone}
\usetikzlibrary{fadings}
\tikzfading[name=fade example,left color=transparent!0,right color=transparent!100]
\begin{document}
{
    \begin{tikzpicture}           
    \draw((2,4) node[fill=white!80, text=black] {AAAAAAAAAAAAAAAAAAAA} ;
    \filldraw [draw=none, white, path fading=fade example] (1,3.5) rectangle (3,4.5);
    \end{tikzpicture}   
    
    \begin{tikzpicture}
    \draw((1,0.5) node[fill=white!80, text=black] {BBBBBBBBBBBBBBBBBBBBB} ;
    \foreach \x in {0,0.01,...,2.0}
    \filldraw [draw=none, white, opacity=\x/2.0] (2.0 - \x, 0) rectangle (1.96-\x, 1);
    \end{tikzpicture}
    
    \begin{tikzpicture}
    \draw((1,0.5) node[fill=white!80, text=black] {CCCCCCCCCCCCCCCCCCCCCC} ;
    \foreach \x in {0,0.01,...,2.0}
    \filldraw [draw=none, blue, opacity=\x/2.0] (2.0 - \x, 0) rectangle (1.96-\x, 1);
    \end{tikzpicture}   
    
    \begin{tikzpicture}
    \draw((1,0.5) node[fill=white!80, text=black] {DDDDDDDDDDDDDDDDDDDDDDD} ;
    \foreach \x in {0,0.001,...,2.0}
    \filldraw [draw=none, blue, opacity=\x/2.0] (1.999 - \x, 0) rectangle (2.0-\x, 1);
    \end{tikzpicture}
    
    \begin{tikzpicture}
    \draw((1,0.5) node[fill=white!80, text=black] {EEEEEEEEEEEEEEEEEEEEEEEE} ;
    \foreach \x in {0,0.001,...,2.0}
    \filldraw [draw=none, blue, opacity=\x/2.0] (1.999 - \x, 0) rectangle (2.001-\x, 1);
    \end{tikzpicture}

}
\end{document}

5個例子

變焦B

答案1

褪色變得不可見,但只是在最後。問題在於,靠近褪色端的褪色不夠嚴重。您可以設置middle color=transparent!50,這將生成您的原始圖像:

在此輸入影像描述

設定middle color=transparent!10淡入淡出前半段從 0% 到 10%,後半段從 10% 到 100%,從而產生

在此輸入影像描述

如果你設定middle color=transparent!2你會得到

在此輸入影像描述

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{fadings}
\tikzfading[name=fade example,left color=transparent!0,right color=transparent!100,middle color=transparent!2]

\begin{document}
    \begin{tikzpicture}           
    \draw((2,4) node[fill=white, text=black] {AAAAAAAAAAAAAAAAAAAA} ;
    \filldraw [draw=none, white, path fading=fade example] (1,3.5) rectangle (3,4.5);
    \end{tikzpicture}  
\end{document}

答案2

這是一個解決方案:

\documentclass[tikz]{standalone}
\usetikzlibrary{fadings}
\tikzfading[name=fade example,left color=transparent!0,right color=transparent!0,middle color=transparent!100]
\begin{document}

\begin{tikzpicture}           
  \node[draw,fill=white!80,text=black] (my text) {AAAAAAAAA} ;
  \filldraw [draw=none, white, path fading=fade example] (my text.south west) rectangle (my text.north east);
\end{tikzpicture}   

\end{document}

注意:褪色是完全的(查看邊框)但文字仍然可見,因為它沒有一直到達邊框。

在此輸入影像描述

相關內容