小结的交叉点:我似乎无法翻转两个非常接近的交叉点之一

小结的交叉点:我似乎无法翻转两个非常接近的交叉点之一

这个问题与这个在小结上,但那里的解决方案没有帮助(尽管为了使交叉点完全出现,它是必需的。

我的问题如下:我画了一个结,两个交叉点彼此非常接近(相隔几毫米),我想翻转第一个交叉点,但不翻转第二个交叉点。但是,当我尝试这样做时,什么也没发生。当我尝试翻转第二个交叉点时,两个交叉点都翻转了。我很确定这是因为它们彼此很接近,但我不知道如何补救……任何帮助都将不胜感激!

梅威瑟:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{knots}
\begin{document} 
\begin{tikzpicture}
\begin{knot}[end tolerance=1pt,flip crossing=1]
\strand[red,thick] (0,0) ellipse (0.35cm and 0.1cm);
\strand[blue,thick] (0,-1) -- (0,1);
\end{knot}
\end{tikzpicture}
\begin{tikzpicture}
\begin{knot}[end tolerance=1pt,flip crossing=2]
\strand[red,thick] (0,0) ellipse (0.35cm and 0.1cm);
\strand[blue,thick] (0,-1) -- (0,1);
\end{knot}
\end{tikzpicture}
\end{document}

答案1

简短回答:添加clip radius=2pt到您的结选项以允许更近的交叉。

长答案: 为了绘制交叉点,该knots包重新绘制了上部曲线(带有间隔背景),并将其剪裁为以交叉点为中心的圆圈。您的问题在于默认圆圈包含两个交叉点,因此该过程似乎会影响两个交叉点。由于第二个交叉点最后渲染,因此它的绘制顺序似乎适用于两个交叉点。我们可以通过在结点上添加背景来看到这一点,这样用于形成间隙的路径就变得可见了:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{knots}
\begin{document} 
\begin{tikzpicture}
\begin{knot}[end tolerance=1pt,flip crossing=1]
\fill[gray] (-.5,-1) rectangle (.5,1);
\strand[red,thick] (0,0) ellipse (0.35cm and 0.1cm);
\strand[blue,thick] (0,-1) -- (0,1);
\end{knot}
\end{tikzpicture}
\end{document}

在此处输入图片描述

您可以看到蓝色路径在第一个交叉点周围有一个圆圈背景,红色路径在第二个交叉点周围有一个圆圈背景,但是每个圆圈都覆盖了两个交叉点,因此只有第二个交叉点“出现”。

要解决这个问题,您可以更改裁剪圆的半径,以便重绘仅发生在靠近交叉点的位置。实际上,您希望半径大于交叉间隙的宽度,但小于最近交叉点之间的距离。

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{knots}
\begin{document} 
\begin{tikzpicture}
\begin{knot}[end tolerance=1pt,flip crossing=1, clip radius=2pt]
\fill[gray] (-.5,-1) rectangle (.5,1);
\strand[red,thick] (0,0) ellipse (0.35cm and 0.1cm);
\strand[blue,thick] (0,-1) -- (0,1);
\end{knot}
\end{tikzpicture}
\end{document}

在此处输入图片描述

现在背景已经足够本地化,只会影响预期的交叉。

相关内容