我正在使用以下代码
\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
跨越0bp
到25bp
下方,你可以看到阴影是如何随着第二个圆圈缩放的。
(我还\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}
输出: