
Я хотел бы сделать плавный переход текста слева и справа. Я хочу, чтобы плавный переход был визуально и тем, и другим:
- прогрессивный
- завершение (т.е. когда исчезновение заканчивается, текст становится невидимым)
Я не нашел ни одного примера.
Я проиллюстрирую то, что я попробовал, на 5 примерах. Мое затухание происходит справа налево и заканчивается где-то в левой трети текста.
На текстах A и B я использую белое выцветание. На текстах C, D, E я использую синее выцветание.
Я протестировал 2 стратегии:
- Использую tikzfading (пример A). Но мой текст не становится полностью невидимым. Затухание не "полное".
- Рисуем несколько маленьких вертикальных полосок. Мне не нравится этот метод, но результат больше соответствует моим ожиданиям. Но когда я печатаю документ или увеличиваю масштаб, я вижу полоски :-(
Как добиться полного выцветания, как в варианте 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}
решение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}
Примечание: выцветаниеполный(обратите внимание на границы), но текст остается видимым, поскольку он не доходит до границ.