正如这篇精彩文章所述回答tikz 样条线可以通过这种方式生成(代码是厚颜无耻地复制的):
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw [gray!50, xshift=4cm] (0,0) -- (1,1) -- (2,-2) -- (3,0);
\draw [cyan, xshift=4cm] plot [smooth, tension=2] coordinates { (0,0) (1,1) (2,-2) (3,0)};
\end{tikzpicture}
\end{document}
但是,我需要的是在第二个坐标处变得透明并在第三个坐标后再次变得可见的样条线。
简单地使用两个样条线是行不通的,因为它会改变第一和第二个、第三个和第四个坐标之间的样条线的形状。
有办法吗?
答案1
执行此操作的一个选项是clip
,您可以使用此答案中的方法如何反转 TikZ 中的“剪辑”选择。
- 首先,我们创建覆盖青色线中心部分的路径(矩形)。
- 第二种使用上面答案中描述的方法来反转剪辑。
代码
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[remember picture,overlay]
% A path that follows the edges of the current page
\tikzstyle{reverseclip}=[insert path={(current page.north east) --
(current page.south east) --
(current page.south west) --
(current page.north west) --
(current page.north east)}
]
\draw [gray!50] (0,0) -- (1,1) -- (2,-2) -- (3,0);
\begin{scope}
\begin{pgfinterruptboundingbox} % To make sure our clipping path does not mess up the placement of the picture
\path[clip](1,1)rectangle(2,-2)[reverseclip];
\end{pgfinterruptboundingbox}
\draw [cyan] plot [smooth, tension=2] coordinates { (0,0) (1,1) (2,-2) (3,0)};
\end{scope}
\end{tikzpicture}
\end{document}
输出