我可以让 TikZ 中的盒子周围发光吗?

我可以让 TikZ 中的盒子周围发光吗?

我想知道的是,我是否可以为使用 TikZ 绘制的框添加发光效果。无论是在这里搜索还是(优秀的)TikZ 手册都没有返回任何结果。有一个圆形发光选项,但我认为这对我的情况没有帮助,还是有帮助!?

任何意见都值得赞赏:)。

编辑:我认为这些模糊阴影似乎是一个相当特殊的 PDF 功能,只有少数 PDF 查看器支持该功能(实际上,只有 Linux 版 Acrobat Reader 9 对我有用)。

爱看阅读器 表明 pdf.js (蓝色框尺寸相同)

答案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} 

相关内容