使用中间色创建圆形阴影

使用中间色创建圆形阴影

我需要画一个圆圈来表示密度,该密度在半径达到某个值之前是恒定的,然后开始下降。我的意思是这样的:

\documentclass[12pt]{article}

\usepackage{tikz}

\begin{document}
\begin{tikzpicture}

\shade [shading=radial,inner color=black] (0,4) circle (2cm);
\draw [fill=lightgray] (0,4) circle (1cm);

\draw[->] [very thick] (0,0) -> (0,2);
\draw[->] [very thick] (0,0) -> (3,0);

\draw [dotted] (0,2) -> (0,4);
\draw [dotted] (1,0) -> (1,4);
\draw [dotted] (2,0) -> (2,4);

\draw [thick] (0,.25) -- (1,.25) -- (1,1.35) -- 
              (1.25,1.35) .. controls (1.625,1.35) 
              and (1.625,0) .. (2,0);

\draw (-.2,1.7) node {$\rho$};
\draw (1,-.2) node {$R_{in}$};
\draw (2,-.2) node {$R_{out}$};
\draw (3.1,-.2) node {$R$};


\end{tikzpicture}

\end{document}

由此产生了如下结果:

我目前完成的工作

我想要的是这个:

外部阴影较深的圆圈

注意圆圈的线条与阴影的起始颜色相匹配。我以为可以通过为阴影设置“中间颜色”来实现这一点,但这个选项似乎不存在。

理想情况下,阴影应该与第一个图底部的情节紧密相关,但我认为这是一个额外的好处。

答案1

您可以使用这个答案并根据您的情况采用:

\documentclass[12pt]{article}

\usepackage{tikz}

%Code from Paul Gabroit -- https://tex.stackexchange.com/a/82503/11232
%%%%%%%%%%%%%%%%%%%%%%%%%
\tikzset{
  ring shading/.code args={from #1 at #2 to #3 at #4}{
    \def\colin{#1}
    \def\radin{#2}
    \def\colout{#3}
    \def\radout{#4}
    \pgfmathsetmacro{\proportion}{\radin/\radout}
    \pgfmathsetmacro{\outer}{.8818cm}
    \pgfmathsetmacro{\inner}{.8818cm*\proportion}
    \pgfmathsetmacro{\innerlow}{\inner-0.01pt}
    \pgfdeclareradialshading{ring}{\pgfpoint{0cm}{0cm}}%
    {
      color(0pt)=(white);
      color(\innerlow)=(white);
      color(\inner)=(#1);
      color(\outer)=(#3)
    }
    \pgfkeysalso{/tikz/shading=ring}
  },
}
%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}
\begin{tikzpicture}
\shade[even odd rule,ring shading={from black at 1 to white at 2}]
  (0,4) circle (2) ;
%\shade[shading=radial,inner color=black](0,4) circle (2cm);
\draw [fill=lightgray] (0,4) circle (1cm);

\draw[->] [very thick] (0,0) -> (0,2);
\draw[->] [very thick] (0,0) -> (3,0);

\draw [dotted] (0,2) -> (0,4);
\draw [dotted] (1,0) -> (1,4);
\draw [dotted] (2,0) -> (2,4);

\draw [thick] (0,.25) -- (1,.25) -- (1,1.35) --
              (1.25,1.35) .. controls (1.625,1.35)
              and (1.625,0) .. (2,0);

\draw (-.2,1.7) node {$\rho$};
\draw (1,-.2) node {$R_{in}$};
\draw (2,-.2) node {$R_{out}$};
\draw (3.1,-.2) node {$R$};


\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容