![使用 tikz 中的结库制作双色绳](https://linux22.com/image/472878/%E4%BD%BF%E7%94%A8%20tikz%20%E4%B8%AD%E7%9A%84%E7%BB%93%E5%BA%93%E5%88%B6%E4%BD%9C%E5%8F%8C%E8%89%B2%E7%BB%B3.png)
我正在尝试绘制单链接图(像这样:https://loopspace.mathforge.org/HowDidIDoThat/TeX/Knots/#section.5)使用 knots 库:
\begin{tikzpicture}
\begin{knot}[
flip crossing=2
]
\strand (1,0) circle[radius=2cm];
\strand[blue] (-1,0) circle[radius=2cm];
\end{knot}
\end{tikzpicture}
不过,我希望其中一个圆圈有两种颜色。这个想法是,链接代表三股辫子的闭合,而链接中的一个圆圈来自其中两股辫子,所以我认为给它上色以显示这一点会很好。
最初,我想的是这样的:如何用 tikz 绘制双色线。但是,当我将 \strand[blue] 更改为 时\strand[draw=blue,dash pattern= on 3pt off 5pt,thick,postaction={draw,red,dash pattern= on 3pt off 5pt,dash phase=4pt,thick}](-1,0) circle[radius=2cm];
,交叉间隙不再出现:
我还尝试了一种替代方法,使用来自这个问题的梯度TikZ 中的路径跟随颜色渐变但是,交叉间隙再次消失了。
我是假设knot 库不知为何没有将 gap 规则应用于后动作/装饰?有没有一种合适的方法可以使用 knots 库绘制双色线?
答案1
\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{knots}
\begin{document}
\begin{tikzpicture}
\begin{knot}[
flip crossing=2,
clip width=10,
]
\strand[red, thick] (1,0) circle[radius=1.3cm];
\strand[
blue, thick,
only when rendering/.style={dash pattern=on 3pt off 5pt},
preaction={draw, red, thick, dash pattern=on 3pt off 5pt, dash phase=4pt},
](-0.5,0) circle[radius=1.3cm];
\end{knot}
\end{tikzpicture}
\end{document}