答案1
为了获得精确的径向阴影,您必须考虑以下摘录和 pgfmanual (v3.0.1a) 第 1086 页中的图片:
阴影被缩放和平移,使得阴影中间的点 (50bp, 50bp) 位于路径的中间,而点 (25bp, 25bp) 位于路径的左下角,(75bp, 75bp) 位于路径的右上角。
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shadings}
\pgfdeclareradialshading{gray ring}{\pgfpoint{0cm}{0cm}}%
{
color(0bp)=(gray);
color(16.66666bp)=(gray); % = 1/1.5 * 25bp
color(20.83333bp)=(gray!10); % = 1.25/1.5 * 25bp
color(25bp)=(gray);
color(50bp)=(gray)
}
\begin{document}
\begin{tikzpicture}
\shade[even odd rule,shading=gray ring]
(0,0) circle (1.5) circle(1);
\end{tikzpicture}
\end{document}
答案2
您可以定义一个新的阴影,例如\pgfdeclareradialshading{ring}
,如下所示:
\documentclass[tikz, border=5pt]{standalone}
\pgfdeclareradialshading{ring}{\pgfpoint{0cm}{0cm}}%
{rgb(0cm)=(1,1,1);
rgb(.6666cm)=(.6,.5,.5);
rgb(1cm)=(1,1,1)}
\begin{document}
\begin{tikzpicture}
\draw[shading=ring, even odd rule] (0,0) circle (1.5) circle (1);
\end{tikzpicture}
\end{document}
\end{document}
答案3
只需为内圆添加一个绘制命令:
\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shadings}
\begin{document}
\begin{tikzpicture}
\shade[outer color=gray,middle color=red,inner color=gray] [even odd rule] (0,0) circle (1.5) (0,0) circle (1);
\draw[fill=blue!50, radius=1.5,draw=gray] (0,0) circle (1);
\end{tikzpicture}
\end{document}
我已添加draw=gray
,以便内圆边框的颜色与阴影区域相匹配。
编辑
我怀疑这不是你想要的,但是middle color
被inner color=gray
thar 覆盖了。你需要把它放在middle color
最后才能让它工作。代码:
\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shadings}
\begin{document}
\begin{tikzpicture}
\shade[outer color=gray,inner color=gray, middle color=gray!10, even odd rule](0,0) circle (1.5) circle (1.25);
\end{tikzpicture}
\end{document}
生产
我认为您需要 AboAmmar 的方法!