tikz knots 包的行为不一致?

tikz knots 包的行为不一致?

我正在尝试使用 knots 包绘制正半扭曲。我预计每条新线都位于前几条线之上,但事实并非如此。在这个例子中,第二条(三条中的)位于顶部:

\documentclass[tikz]{standalone}
\usetikzlibrary{knots} 
\begin{document}
\begin{tikzpicture}
\begin{knot}[clip width=2, consider self intersections]
     \strand  (0,1) .. controls +(0:.8) and +(180:.5) ..  (1,0); 
     \strand (0, .75) .. controls +(0:.5) and +(180:.5) .. (1,.25); 
     \strand  (0,0) .. controls +(0:.4) and +(180:.5) ..  (1,1);        
\end{knot}         
    \node at (0.9, 0.75) {\vdots};
    \node at (0.1, 0.4) {\vdots};
\end{tikzpicture}
\end{document}

在此处输入图片描述

此外,当我交换第一股和第三股的线时,有一个交叉无法被识别:

在此处输入图片描述

这是错误还是功能?正如我所说,我正试图做出积极的半扭曲。

答案1

总结 我需要写更好的文档。

与我设计此包时使用的图表相比,您的图表实际上相当小。这不是问题本身,但这意味着默认长度是为较大的图表设置的,对于像您这样的图表,需要减少默认长度。

首先,没有考虑右下角的交叉口任何一个两个版本(使用您已有的线束或按照您描述的顺序更改线束)。这是因为默认值为end tolerance14pt约为半厘米。由于您的整个图表适合 1 厘米的正方形,因此其中一个交叉点在线束末端半厘米以内也就不足为奇了。因此,第一步是将 减小到end tolerance更适合您的图表的值。

您在图表的第一个版本中看到此交叉的原因在于,当绘制左侧交叉(中间的线穿过)时,剪辑区域非常大,以至于它也包含右侧交叉。该大小由 控制,clip radius默认值为10pt

在相关的地方画圈表示如下:

重点区域已圈出

draft mode=crossings对于调试非常有用,因为它可以显示正在找到哪些交叉点)

所以为了解决这个问题,我们需要按照上面描述的方法减小尺寸。

\documentclass{article}
%\url{https://tex.stackexchange.com/q/611824/86}
\usepackage{tikz}


\usetikzlibrary{knots} 
\begin{document}
\begin{tikzpicture}
\begin{knot}[
  clip width=2,
%  draft mode=crossings,
  end tolerance=3pt,
  clip radius=3pt,
]
     \strand[red]  (0,1) .. controls +(0:.8) and +(180:.5) ..  (1,0); 
     \strand[green] (0, .75) .. controls +(0:.5) and +(180:.5) .. (1,.25); 
     \strand[blue]  (0,0) .. controls +(0:.4) and +(180:.5) ..  (1,1);        
\end{knot}         
\node at (0.9, 0.75) {\vdots};
\node at (0.1, 0.4) {\vdots};
\end{tikzpicture}
\end{document}

这将产生以下内容:

所有交叉的小结

顺便说一句,你对哪条链应该是上链的直觉是错误的。你说“我以为每一根新线都会位于前几根线之上“。由于无论是否应该翻转,每个交叉点都会重新渲染,因此我可以选择默认选择较低或较高的数字作为超链。我记不清为什么——但可能纯粹是出于实用的编程原因——我选择了较低的数字,这样交叉点看起来就像较早的链在较晚的链之上。

相关内容