从某种程度上来说,这只是一个提醒,未解之谜但可以说有一些新的见解或倾向。(我不认为实际问题是旧问题的重复。)该fillbetween
库具有提供对交叉段的访问的功能。我知道Heiko Oberdiek 的声明这可能并不总是准确的,但我发现在很多情况下它实际上足够准确。在我看来,真正的问题是reverse
在普通的 Ti 中不起作用钾Z,而在 pgfplots 中它只是工作正常考虑这个 MWE:
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots} % loads tikz
\pgfplotsset{compat=1.15}
\usetikzlibrary{intersections,fillbetween}
\begin{document}
\begin{tikzpicture}
\path[name path = line1, draw] (-1,0) to[out=90,in=90] (1,1) to[out=-90,in=0] (0,-1);
\path[name path = line2, draw] (-1,1) -- (1,-1);
\draw[very thick, intersection segments={of=line1 and line2,sequence=L2}];
\end{tikzpicture}
\begin{tikzpicture}
\path[name path = line1, draw] (-1,0) to[out=90,in=90] (1,1) to[out=-90,in=0] (0,-1);
\path[name path = line2, draw] (-1,1) -- (1,-1);
\draw[very thick, intersection segments={of=line1 and line2,sequence=L1 R2}];
\end{tikzpicture}
% The following does not work.
%
% \begin{tikzpicture}
% \path[name path = line1, draw] (-1,0) to[out=90,in=90] (1,1) to[out=-90,in=0] (0,-1);
% \path[name path = line2, draw] (-1,1) -- (1,-1);
% \draw[very thick, intersection segments={of=line1 and
% line2,sequence=L2[reverse] R2}];
% \end{tikzpicture}
\end{document}
如果我取消注释最后一部分,就会触发错误。事实上,任何试图执行的reverse
操作都会导致错误。
问题:有没有(简单的)方法可以解决这个问题?
评论:一旦reverse
工作,未解之谜也应该得到解决。
答案1
您使用的语法似乎有误。请参阅pgfplots
手册,其中有以下示例
\fill [
intersection segments={
of=f and border,
sequence={R2[reverse] -- L2}},
pattern=north west lines,
]
-- (rel axis cs:1,1) -- cycle;
在的解释中reverse
(目前为第 5 章第 444 页),注意参数sequence
包含在括号中{...}
。
下面的文档与您上一个不起作用的代码相对应,在进行此更改后可以正常工作:
\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary{intersections,fillbetween}
\pgfplotsset{compat=1.15}
\begin{document}
\begin{tikzpicture}
\path[name path = line1, draw] (-1,0) to[out=90,in=90] (1,1)
to[out=-90,in=0] (0,-1);
\path[name path = line2, draw] (-1,1) -- (1,-1);
\draw[very thick, intersection segments={of=line1 and line2,
sequence={L2[reverse] R2}}];
\end{tikzpicture}
\end{document}