我想用渐变颜色填充 x-y 平面上的一个区域,但不知道该怎么做。我知道如何用颜色填充形状,但当区域形状不明确时,我不知道该怎么做。
让我更具体一点:
我画了一个隐函数 y^2-x^2=a^2 的草图:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{center}
\begin{tikzpicture}
\draw[->] (-3,0) -- (3,0) node[right] {$x$};
\draw[->] (0,-3) -- (0,3) node[above] {$y$};
\draw (-3,3) parabola bend (0,1.25) (3,3);
\draw (-3,-3) parabola bend (0,-1.25) (3,-3);
\end{tikzpicture}
\end{center}
\end{document}
这将产生以下内容:
现在我想用一种在左右边缘逐渐消失的颜色填充这两个抛物线之间的区域(以强调该区域逐渐向无穷远处延伸的事实)。
能做到吗?
先谢谢了!
答案1
也许你应该使用pgfplots
提供该fill between
功能的版本。但这里有一个tikz
版本:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{center}
\begin{tikzpicture}
\draw[thick] (-3,3) parabola bend (0,1.25) (3,3);
\draw[thick] (-3,-3) parabola bend (0,-1.25) (3,-3);
\fill[left color = olive!10,right color = olive!10, middle color=olive]
(-3,3) parabola bend (0,1.25) (3,3) -- (3,-3) parabola bend (0,-1.25) (-3,-3)
-- (-3,3) -- cycle;
\draw[->] (-4,0) -- (4,0) node[right] {$x$};
\draw[->] (0,-3) -- (0,3) node[above] {$y$};
\end{tikzpicture}
\end{center}
\end{document}
使用pgfplots
及其fillbetween
库,您的代码将如下所示:
\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{center}
\begin{tikzpicture}
\begin{axis}[
axis lines=middle,
xtick=\empty,
ytick=\empty,
]
\addplot[blue,name path=U] {sqrt(3^2+x^2)};
\addplot[blue,name path=L] {-sqrt(3^2+x^2)};
\addplot[left color=cyan!05,right color=cyan!05,middle color=cyan!80!black]
fill between[of=U and L,soft clip={domain=-5:5},];
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}
结果如下: