![我可以让 TikZ 中的盒子周围发光吗?](https://linux22.com/image/245259/%E6%88%91%E5%8F%AF%E4%BB%A5%E8%AE%A9%20TikZ%20%E4%B8%AD%E7%9A%84%E7%9B%92%E5%AD%90%E5%91%A8%E5%9B%B4%E5%8F%91%E5%85%89%E5%90%97%EF%BC%9F.png)
我想知道的是,我是否可以为使用 TikZ 绘制的框添加发光效果。无论是在这里搜索还是(优秀的)TikZ 手册都没有返回任何结果。有一个圆形发光选项,但我认为这对我的情况没有帮助,还是有帮助!?
任何意见都值得赞赏:)。
编辑:我认为这些模糊阴影似乎是一个相当特殊的 PDF 功能,只有少数 PDF 查看器支持该功能(实际上,只有 Linux 版 Acrobat Reader 9 对我有用)。
(蓝色框尺寸相同)
答案1
这个 MWE 可能更接近你的问题:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\def\shadowradius{3pt}
%
\newcommand\drawshadowbis[1]{
\begin{pgfonlayer}{shadow}
\fill[inner color=red,outer color=red!10!white] ($(#1.south west)$) circle (\shadowradius);
\fill[inner color=red,outer color=red!10!white] ($(#1.north west)$) circle (\shadowradius);
\fill[inner color=red,outer color=red!10!white] ($(#1.south east)$) circle (\shadowradius);
\fill[inner color=red,outer color=red!10!white] ($(#1.north east)$) circle (\shadowradius);
\fill[ top color=red, bottom color=red!10!white] ($(#1.south west)+((0,-\shadowradius)$) rectangle ($(#1.south east)$);
\fill[left color=red,right color=red!10!white] ($(#1.south east)$) rectangle ($(#1.north east)+((\shadowradius,0)$);
\fill[bottom color=red,top color=red!10!white] ($(#1.north west)$) rectangle ($(#1.north east)+((0,\shadowradius)$);
\fill[right color=red,left color=red!10!white] ($(#1.south west)$) rectangle ($(#1.north west)+(-\shadowradius,0)$);
\end{pgfonlayer}
}
%
\pgfdeclarelayer{shadow}
\pgfsetlayers{shadow,main}
\begin{tikzpicture}
\node [fill=blue,rectangle,rounded corners=0pt,draw=blue, ultra thick, text=white] (box) {Test!!!};
\drawshadowbis{box}
\end{tikzpicture}
\end{document}
答案2
通过修改此线程中的 Caramdir 的代码:使用基于 tikz 的圆角矩形实现褪色阴影?, 我懂了:
这是我的 MWE:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\def\shadowradius{3pt}
%
\newcommand\drawshadowbis[1]{
\begin{pgfonlayer}{shadow}
\fill[inner color=blue,outer color=blue!10!black] ($(#1.south west)$) circle (\shadowradius);
\fill[inner color=blue,outer color=blue!10!black] ($(#1.north west)$) circle (\shadowradius);
\fill[inner color=blue,outer color=blue!10!black] ($(#1.south east)$) circle (\shadowradius);
\fill[inner color=blue,outer color=blue!10!black] ($(#1.north east)$) circle (\shadowradius);
\fill[ top color=blue, bottom color=blue!10!black] ($(#1.south west)+((0,-\shadowradius)$) rectangle ($(#1.south east)$);
\fill[left color=blue,right color=blue!10!black] ($(#1.south east)$) rectangle ($(#1.north east)+((\shadowradius,0)$);
\fill[bottom color=blue,top color=blue!10!black] ($(#1.north west)$) rectangle ($(#1.north east)+((0,\shadowradius)$);
\fill[right color=blue,left color=blue!10!black] ($(#1.south west)$) rectangle ($(#1.north west)+(-\shadowradius,0)$);
\end{pgfonlayer}
}
%
\pgfdeclarelayer{shadow}
\pgfsetlayers{shadow,main}
\begin{tikzpicture}
\node [fill=blue,rectangle,rounded corners=0pt,draw=blue, ultra thick, text=white] (box) {Test!!!};
\drawshadowbis{box}
\end{tikzpicture}
\end{document}