TikZ 中的折线阴影

TikZ 中的折线阴影

是否可以在 TikZ 中对折线的一侧应用阴影效果?我有以下简单代码

\begin{tikzpicture}
\draw (1.06,9.56) -- (1.44,9.78) -- (1.78,9.56) -- (2.14,9.79) -- (2.48,9.29)
          -- (2.83,9.79) -- (3.17,9.54) -- (3.54,9.76) -- (3.87,9.56);

\draw (1.06,8.94) -- (1.44,8.72) -- (1.78,8.93) -- (2.14,8.71) -- (2.48,9.21) 
          -- (2.83,8.72) -- (3.17,8.96) -- (3.54,8.74) -- (3.87,8.94);
\end{tikzpicture}

我希望在上面的线上方和下面线下方有一些阴影,因为这些线代表空气-固体边界,我需要以图形方式传达这一点。

答案1

我认为fill或需要一条向上到某个点和向下到某个点的shade封闭路径,因此您可以创建一个。下面我使用宏来定义和,以便我们可以使用它两次:一次用于绘制线,然后用于指定封闭区域。\MaxY\MinY\TopPath\BottomPath

在此处输入图片描述

\documentclass[border=2pt]{standalone}
\usepackage{tikz}
\begin{document}

\newcommand*{\MaxX}{3.87}%
\newcommand*{\MinX}{1.06}%
\newcommand*{\MaxY}{10.0}%
\newcommand*{\MinY}{8.50}%
\newcommand*{\TopPath}{(\MinX,9.56) -- (1.44,9.78) -- (1.78,9.56) -- (2.14,9.79) -- (2.48,9.29) -- (2.83,9.79) -- (3.17,9.54) -- (3.54,9.76) -- (\MaxX,9.56)}%
\newcommand*{\BottomPath}{(\MinX,8.94) -- (1.44,8.72) -- (1.78,8.93) -- (2.14,8.71) -- (2.48,9.21) -- (2.83,8.72) -- (3.17,8.96) -- (3.54,8.74) -- (\MaxX,8.94)}%

\begin{tikzpicture}
\shade [top color= white, bottom color=brown] \TopPath
          -- (\MaxX,\MaxY) -- (\MinX,\MaxY) -- cycle;
\draw [thick] \TopPath;


\shade [top color= blue, bottom color=white] \BottomPath
          -- (\MaxX,\MinY) -- (\MinX,\MinY) -- cycle;
\draw [thick] \BottomPath;
\end{tikzpicture}
\end{document}

答案2

我知道答案已经被接受了,但是我仍然会给出我的答案。

此答案使用剪辑来删除绘制的边界部分(外部部分)。使用此方法,只需输入和使用一次路径。

以下是代码

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}

\begin{tikzpicture}

\begin{scope} %only to make sure the clip doesn't act on anything else
\clip ($(0,0)+2*(\pgflinewidth,\pgflinewidth)$) rectangle ($(5,3)-2*(\pgflinewidth,\pgflinewidth)$);

\draw[ultra thick,bottom color=gray,top color = white] (0,2.5) -- (1,2.7) -- (2,2.4) -- (3,2.6) -- (4,2.5) -- (5,2.6) -- (5,3) -- (0,3) -- cycle;

\draw[ultra thick,bottom color=white,top color = gray] (0,0.5) -- (1,0.6) -- (2,0.4) -- (3,0.6) -- (4,0.5) -- (5,0.4) -- (5,0) -- (0,0) -- cycle;
\end{scope}

\end{tikzpicture}

\end{document}

结果是

在此处输入图片描述

相关内容