我一直在使用 TikZ 辫子包,效果很好。不幸的是,我现在需要开始绘制单数辫子/结,我认为该包无法处理。这些概念比常规辫子/结“不太流行”,因此它尚未得到开发是可以理解的。
这是我完成的一个基本示例。第一个交叉点用黑点表示,是奇异交叉。这些通常用黑点表示。其他交叉点完全正常。
我的尝试:
我画奇异交叉的方法不太好,因为
- 我不得不手动画一个黑色圆圈
- 我必须猜测交叉点的位置,直到猜对为止
简而言之,这种方法有点浪费时间;但我必须画很多这样的……
我的问题: 有人对更系统地做到这一点有什么想法或建议吗?也许有一种方法可以访问交叉点列表(我假设该包在后台计算),我可以利用它来发挥我的优势?在我放弃并接受浪费时间之前,我会尝试寻找避免浪费时间的方法。
理想情况下,该程序包可以进行扩展,这样每当用户输入t_1
(例如,而不是s_1
)时,它就会检测到用户想要单数交叉,这样它就可以为我完成所有猜测/绘制工作。但显然我自己完全没有能力做到这一点。
我的代码:
\documentclass[12pt,letterpaper]{article}
\usepackage{tikz}
\usetikzlibrary{braids}
\begin{document}
\begin{center}
\def\height{3.5} %bar lengths
\def\width{3.2} %bar difference heights, .2 added to make it nicer
\begin{tikzpicture}
\pic[braid/.cd,
number of strands = 3,
thick]
{braid={ s_1, s_2[braid/gap=0], s_3}};
\filldraw (0.5,-0.75) circle (0.07cm); %the singular intersection
\draw[thick] (-0.2,0) -- (\width,0); %top bar
\draw[thick] (-0.2,-\height) -- (\width,-\height); %bottom bar
\end{tikzpicture}
\emph{$\tau_1\sigma_2\sigma_3$}
\end{center}
\end{document}
答案1
该knots
软件包有更多高级选项,但标记交叉点的一种非常粗暴的方法是通过连接股线上标记的线的交叉点来恢复它。还请注意,通过使用局部边界框,您可以避免水平条的硬编码尺寸。
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{braids,calc}
\begin{document}
\begin{tikzpicture}
\pic[local bounding box=my braid,braid/.cd,
number of strands = 3,
thick,
name prefix=braid]
{braid={ s_1, s_2, s_3}};
\filldraw (intersection of braid-2-0--braid-2-1 and braid-1-0--braid-1-1)
circle[radius=0.07cm];
\draw[thick] ([xshift=-1ex]my braid.north west) -- ([xshift=1ex]my braid.north east)
([xshift=-1ex]my braid.south west) -- ([xshift=1ex]my braid.south east);
\end{tikzpicture}
\end{document}