Tikz 中的多色圆形渐变

Tikz 中的多色圆形渐变

我正在使用以下代码

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
    \begin{tikzpicture}
        \coordinate (y) at (0,10);
        \coordinate (x) at (10,0);
        \coordinate (ya) at ($(y) + (0,1.5)$);
        \coordinate (xa) at ($(x) + (1.5,0)$);
        \begin{scope}
            \clip (0,0) rectangle (x |- y);
            \fill[red] (x) circle (10);
            \fill[orange] (x) circle (8);
            \fill[yellow] (x) circle (6);
            \fill[green] (x) circle (4);
            \fill[green!50!black] (x) circle (2);
        \end{scope}
        \draw[->,thick] (0,-1) -- (ya);
        \draw[->,thick] (-1,0) -- (xa);
    \end{tikzpicture}
\end{document}

生成此图

在此处输入图片描述

我怎样才能用“穿过”相同颜色的单一渐变来替换彩色圆形区域?

答案1

\pgfdeclareradialshading您可以使用以下方式定义自定义阴影阴影tikz 库。单位bp代表“大点”,正如所述这里,会自动重新缩放到当前路径的边界框,这样 (50bp,50bp) 就是中心,而 (25bp,25bp) 和 (75bp,75bp) 就是角。这就是为什么 scolor跨越0bp25bp下方,你可以看到阴影是如何随着第二个圆圈缩放的。

(我还\coordinate从您的代码中删除了 s,因为它们与解决方案没有直接关系。)

平均能量损失

\documentclass[margin=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shadings}
\pgfdeclareradialshading{gyr}{\pgfpoint{0bp}{0bp}}{%
  color(0bp)=(green!50!black);
  color(6.25bp)=(green);
  color(12.5bp)=(yellow);
  color(18.75bp)=(orange);
  color(25bp)=(red)
}
\begin{document}
    \begin{tikzpicture}
        \begin{scope}
          \clip (0,0) rectangle (10,10);
          \shade[shading=gyr] (10,0) circle (10);
          \shade[shading=gyr] (0,10) circle (3);
        \end{scope}
      \draw[->,thick] (0,-1) -- (0,11);
      \draw[->,thick] (-1,0) -- (11,0);
    \end{tikzpicture}
\end{document}

结果

结果

答案2

我按照你的代码做了一些小改动:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepgflibrary {shadings}

\begin{document}
    \begin{tikzpicture}
        \coordinate (y) at (0,10);
        \coordinate (x) at (10,0);
        \coordinate (ya) at ($(y) + (0,1.5)$);
        \coordinate (xa) at ($(x) + (1.5,0)$);
    \begin{scope}
        \clip (0,0) rectangle (8,8);
        \shade[shading=color wheel] (8,0) circle (8);
    \end{scope}
        \draw[->,thick] (0,-1) -- (ya);
        \draw[->,thick] (-1,0) -- (xa);
    \end{tikzpicture}

\end{document}

输出:

在此处输入图片描述

相关内容