我的问题受到以下启发:在 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}
输出:
这个答案的灵感来自于回答用户 rgallego 的。