我对 pgfplots 包中的相交线段有疑问。我想将圆(名为 mypath)与另一个圆相交,并想分别用黄色、红色、绿色绘制 mypath 的相交线段 L1、L2、L3。但 L2、L3 线段没有按预期计算。为什么?
\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{fillbetween}
\begin{document}
\begin{tikzpicture}
\path [name path=mypath] (0,0) circle (1);
\node[draw,circle,name path=node2] at ( 30:1 ) {2};
\draw[green,intersection segments={of=mypath and
node2,sequence={L3}}];
\draw[red,intersection segments={of=mypath and
node2,sequence={L2}}];
\draw[yellow,intersection segments={of=mypath and
node2,sequence={L1}}];
\end{tikzpicture}
\end{document}
答案1
我必须承认,我对为什么会出现额外的一行感到有些困惑(我怀疑closepath
底层软路径中出现了偏差),但无论如何,这是使用 2.0 版的代码spath3
在正确的位置分割路径的包。
\documentclass{article}
%\url{https://tex.stackexchange.com/q/287401/86}
\usepackage{tikz}
\usetikzlibrary{intersections, spath3}
\begin{document}
\begin{tikzpicture}
\path [spath/save=mypath] (0,0) circle (1);
\node[draw,circle,spath/save global=node2] at ( 30:1 ) {2};
\tikzset{
spath/split at intersections={mypath}{node2},
every mypath component/.style={draw},
mypath component 1/.style={yellow},
mypath component 2/.style={red},
mypath component 3/.style={green},
spath/render components=mypath,
}
\end{tikzpicture}
\end{document}
编辑于 2021 年 2 月:
版本 2.2(现在在 TL 上)可以正确处理闭合路径,并且上述代码生成下图。