线条褪色或模糊

线条褪色或模糊

我的问题受到以下启发:在 tikz 中旋转淡入淡出询问者正在绘制激光束,这些激光束看起来有些模糊,不是线条,而是带有渐变的方框。这种方法的问题在于,渐变必须根据方向通过相当不方便的画布变换进行调整。除此之外,这种方式不可能画出曲线。

这让我想到,是否有更方便的方式来绘制淡入淡出或模糊的线条,也许通过将某种非常紧密重复的decoration模板应用于路径?有什么想法吗?

答案1

这是一个使用递归的命题preaction(十个预操作中的每一个都绘制了路径,draw opacity=.1并且线宽增加了.2pt):

在此处输入图片描述

\documentclass{standalone}
\usepackage{ifthen}
\usepackage{tikz}
\tikzset{
  laser beam action/.style={
    line width=\pgflinewidth+.2pt,draw opacity=.1,draw=#1,
  },
  laser beam recurs/.code 2 args={%
    \pgfmathtruncatemacro{\level}{#1-1}%
    \ifthenelse{\equal{\level}{0}}%
    {\tikzset{preaction={laser beam action=#2}}}%
    {\tikzset{preaction={laser beam action=#2,laser beam recurs={\level}{#2}}}}
  },
  laser beam/.style={preaction={laser beam recurs={10}{#1}},draw opacity=1,draw=#1},
}
\begin{document}
\begin{tikzpicture}
  \fill[lime] circle(1cm);
  \path[preaction={fill=black},laser beam=yellow,] (1,2) circle(1cm and 5mm);
  \path[laser beam=red] (0,0) -- (2,2);
  \path[rounded corners=5mm,laser beam=blue] (0,0) -- (3,0) -- (0,-2);
  \path[line width=4pt,laser beam=orange] (0,0) -- (-1,2);
\end{tikzpicture}
\end{document}

答案2

由于如果只应绘制直线,所提出的解决方案似乎过于复杂,因此我再次尝试并提出了涉及shadings库的以下解决方案canvas transformation

梅威瑟:

\documentclass[tikz,convert={density=400,outext=.png}]{standalone}
\usepackage{tikz}
\usetikzlibrary{shadings} % libraries for this TikZ picture
\begin{document}
\begin{tikzpicture}
    \draw (0,0) rectangle (2,2);
    \begin{scope}[transform canvas={rotate=30}] % rotate by 30 degree
        \shade[shading=axis,bottom color=white,top color=white,middle color=black,shading angle=0] (1,0) rectangle (2,0.2);
    \end{scope}
\end{tikzpicture}
\end{document}

输出:

旋转 30 度的渐变线条

这个答案的灵感来自于回答用户 rgallego 的。

相关内容