需要用 tikz 画纽结, 如图
找到 knots 包, 三叶结网上有现成的复制了, D 图通过看 knots 包画出来了, 可能代码比较蹩脚, 如下
\begin{tikzpicture}[scale=.7]
\begin{knot}[
%draft mode=crossings,
]
\strand[ultra thick](0,0)circle(1cm);
\strand[ultra thick](60:1)circle(1cm);
\strand[ultra thick](1,0)circle(1cm);
\flipcrossings{2,3,6}
\end{knot}
\end{tikzpicture}
然后画 B 选项时, 看到包里面有 consider self intersections 这部分, 就做了尝试, 但是那个结似乎并不会被计算出来, 搞不定, 因此求教, 失败代码如下
\begin{tikzpicture}[scale=.7]
\begin{knot}[
consider self intersections,
draft mode=crossings,
]
\strand[ultra thick](0,0)
to[out=45,in=135](0.707,0)
arc(405:135:1)
to[out=45,in=135](0,0)
to[out=-45,in=225](0.707,0)
arc(-45:225:1)
to[out=-45,in=225](0,0);
\end{knot}
\end{tikzpicture}
失败效果如下
感谢指教,谢谢
测了好几位数到 0.045722961425pt
,还是不能仅分到123,应该就是起点终点重合了,一般分两段曲线画更好。
\begin{tikzpicture}[scale=.7]
\begin{knot}[
consider self intersections=true,
% draft mode=crossings,
end tolerance=.045722961425pt,
flip crossing/.list={3}
]
\strand[ultra thick](0,0)
to[out=45,in=135](0.707,0)
arc(405:135:1)
to[out=45,in=135](0,0)
to[out=-45,in=225](0.707,0)
arc(-45:225:1) to[out=-45,in=225](0,0);
\end{knot}
\end{tikzpicture}
\begin{tikzpicture}[scale=.7]
\begin{knot}[
consider self intersections=true,
% draft mode=crossings,
end tolerance=.045722961425pt,
flip crossing/.list={2,4}
]
\strand[ultra thick](0,0)
to[out=45,in=135](0.707,0)
arc(405:135:1)
to[out=45,in=135](0,0)
to[out=-45,in=225](0.707,0)
arc(-45:225:1) to[out=-45,in=225](0,0);
\end{knot}
\end{tikzpicture}
option ignore endpoint intersections
is what you need.
第一版代码:
\documentclass[tikz,border=1cm]{standalone}
\usetikzlibrary{knots}
\begin{document}
\begin{tikzpicture}
\begin{knot}[
consider self intersections,
ignore endpoint intersections=false,
draft mode=crossings,
]
\strand[ultra thick]
(0,0) to[out=45,in=135] (0.707,0)
arc(405:135:1)
to[out=45,in=135] (0,0)
to[out=-45,in=225] (0.707,0)
arc(-45:225:1)
to[out=-45,in=225] (0,0);
\end{knot}
\end{tikzpicture}
\end{document}
但是问题出现在由于起点恰为knots
点,似乎因为识别精度等问题出现了大量重合的交点,难以指定\flipcrossings
的序号。和八省联考题还有差异。
第二版代码(权宜之计):经过近乎痛苦仔细地分辨,我们想要修改的左侧节点对应的的编号应为8,9,10,11
,于是可以不优雅地加上\flipcrossings{8,9,10,11}
\documentclass[tikz,border=1cm]{standalone}
\usetikzlibrary{knots}
\begin{document}
\begin{tikzpicture}
\begin{knot}[
consider self intersections,
ignore endpoint intersections=false,
]
\strand[ultra thick]
(0,0) to[out=45,in=135] (0.707,0)
arc(405:135:1)
to[out=45,in=135] (0,0)
to[out=-45,in=225] (0.707,0)
arc(-45:225:1)
to[out=-45,in=225] (0,0);
\flipcrossings{8,9,10,11}%ugly here
\end{knot}
\end{tikzpicture}
\end{document}
可以得到B选项...
另外你的八省联考卷pdf扫描质量堪忧,补图
Anyway...应该是有更优雅地无需指定是哪几个重叠intersections的方法,蹲一下论坛的其他朋友
self interaction 我没整出来,我的方法,是分成这样的红蓝两个曲线,中间必须交错,把起始和终点弄在别的地方,你自己把颜色的选项去掉:
这个是你的 B:
这个是你的 C:
以下是代码,可以直接编译:
\documentclass[tikz]{standalone}
\usetikzlibrary{knots}
\begin{document}
\begin{tikzpicture}[scale=.7]
\begin{knot}[
draft mode = crossings,
flip crossing = 2]
\strand[ultra thick,red](-1,0.707)
arc(180:225:1)
to[out=-45,in=225](0,0)
to[out=45,in=135](0.707,0)
arc(45:-180:1);
\strand[ultra thick,blue](-1,-0.707)
arc(180:135:1)
to[out=45,in=135](0,0)
to[out=-45,in=225](0.707,0)
arc(-45:180:1);
\end{knot}
\end{tikzpicture}
\clearpage{}
\begin{tikzpicture}[scale=.7]
\begin{knot}[
draft mode = crossings,
flip crossing = 2]
\strand[ultra thick,blue](-1,-0.707)
arc(180:135:1)
to[out=45,in=135](0,0)
to[out=-45,in=225](0.707,0)
arc(-45:180:1);
\strand[ultra thick,red](-1,0.707)
arc(180:225:1)
to[out=-45,in=225](0,0)
to[out=45,in=135](0.707,0)
arc(45:-180:1);
\end{knot}
\end{tikzpicture}
\end{document}
感谢指导