我正在寻找一种绘制 Reidemeister-Moves 的简单解决方案。
我很难显示交叉点。
有没有一种简单的方法来显示交叉点?
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{center} %1
\begin{tikzpicture}[node distance={15mm}, thick, main/.style = {draw, circle,scale=0.8}]
\draw (0,0) to [out = -10, in = -90](2,.5) to [out=90, in = 90, looseness = 1.5] (1,.5) [out=-90, in = -170]to (3,0);
\end{tikzpicture}
\hspace*{.1in}
\begin{tikzpicture}[node distance={15mm}, thick, main/.style = {draw, circle,scale=0.8}]
\draw (0,0) to [out = -10, in = -170] (3,0);
\end{tikzpicture}
\hspace*{.1in}
\begin{tikzpicture}[node distance={15mm}, thick, main/.style = {draw, circle,scale=0.8}]
\draw (0,0) to [out = -10, in = -90](2,.5) to [out=90, in = 90, looseness = 1.5] (1,.5) [out=-90, in = -170]to (3,0);
\end{tikzpicture}
\end{center}
\begin{center} %2
\begin{tikzpicture}[node distance={15mm}, thick, main/.style = {draw, circle,scale=0.8}]
\draw[red] (0,0) to [out =10 , in = 110] (2,-0.5) to [out =-70, in = 70, looseness=1] (2,-1.5) to [out =-110, in = -10] (0,-2);
\draw[blue] (4,-.25) to [out = 170, in = 70] (2,-.5) to [out =-110, in= 110] (2,-1.5) to [out =-70, in = 190] (4,-1.75);
\end{tikzpicture}
\hspace*{.2in}
\begin{tikzpicture}[node distance={15mm}, thick, main/.style = {draw, circle,scale=0.8}]
\draw[red] (0,0) to [out =10 , in = 110] (2,-0.5) to [out =-70, in = 70, looseness=1] (2,-1.5) to [out =-110, in = -10] (0,-2);
\draw[blue] (4,-.25) to [out = 170, in = 70] (2.5,-.5) to [out =-110, in= 110] (2.5,-1.5) to [out =-70, in = 190] (4,-1.75);
\end{tikzpicture}
\end{center}
\begin{center} %3
\begin{tikzpicture}[node distance={15mm}, thick, main/.style = {draw, circle,scale=0.8}]
\draw[red] (0,0) to (2,-2);
\draw[blue] (2,0) to (0,-2);
\draw[green] (0,-.5) to (2,-.5);
\end{tikzpicture}
\hspace*{.1in}
\begin{tikzpicture}[node distance={15mm}, thick, main/.style = {draw, circle,scale=0.8}]
\draw[red] (0,0) to (2,-2);
\draw[blue] (2,0) to (0,-2);
\draw[green] (0,-1.5) to (2,-1.5);
\end{tikzpicture}
\hspace*{.3in}
\begin{tikzpicture}[node distance={15mm}, thick, main/.style = {draw, circle,scale=0.8}]
\draw[blue] (0,0) to (2,-2);
\draw[red] (2,0) to (0,-2);
\draw[green] (0,-.5) to (2,-.5);
\end{tikzpicture}
\hspace*{.1in}
\begin{tikzpicture}[node distance={15mm}, thick, main/.style = {draw, circle,scale=0.8}]
\draw[blue] (0,0) to (2,-2);
\draw[red] (2,0) to (0,-2);
\draw[green] (0,-1.5) to (2,-1.5);
\end{tikzpicture}
\end{center}
\end{document}
这可能是我的目标或者类似的东西:
答案1
该knots
软件包可以自动完成大部分工作,但这里有一个使用相同基本技术的手动解决方案。
要进行交叉,请先绘制底部线束,然后绘制顶部线束,并将选项double
设置double distance
为与线宽相同的粗细。withinline width
绘制一条粗白线,顶部有一条细黑线(或您选择的颜色),模拟交叉。这内置于以下代码中double
调用的样式中。要更改顶部线束周围的间距,请更改。overcross
line width=1.5
我使用可选参数将每个部分都变成了自己的,tikzpicture
以便可以重复使用。例如,最左边的 I 型图形与最右边的图形相同,但沿 x 轴镜像。因此使用yscale=-1
会产生所需的效果。类似地,III 型移动只是最左边图像的旋转和镜像版本。
图中线宽用 全局设置\knotlinewidth
。当然,您可以随意更改粗细。
最后,我添加了enumitem
包以使罗马数字变得简单。
\documentclass{article}
\usepackage{tikz}
\usepackage{enumitem}
\tikzset{overcross/.style={double, line width=1.5, white, double=#1, double distance=\knotlinewidth},
overcross/.default={black},
knot/.style={line width=\knotlinewidth, baseline=-.5ex}}
\newcommand{\knotlinewidth}{.7pt}
\newcommand{\myarrow}{$\quad\longleftrightarrow\quad$}
\newcommand{\RIa}[1][]{\tikz[knot, #1]{\draw(-.5,.5) to[out=-90,in=-90] (.5,0); \draw[overcross] (.5,0) to[out=90,in=90] (-.5,-.5);}}
\newcommand{\RIb}[1][]{\tikz[knot, #1]{\draw[looseness=.8] (-.5,-.5) to[out=90, in=-90] (.5,0) to[out=90, in=-90] (-.5,.5);}}
\newcommand{\RIIa}[1][]{\tikz[knot, #1]{\draw[red, looseness=2.3] (-.5,-.5) to[out=0, in=0] (-.5,.5); \draw[looseness=2.3, overcross=blue] (.5,-.5) to[out=180, in=180] (.5,.5);}}
\newcommand{\RIIb}[1][]{\tikz[knot, #1]{\draw[red, looseness=1.4] (-.5,-.5) to[out=0, in=0] (-.5,.5);\draw[blue, looseness=1.4] (.5,.5) to[out=180,in=180] (.5,-.5);}}
\newcommand{\RIIc}[1][]{\tikz[knot, #1]{\draw[blue, looseness=2.3] (.5,-.5) to[out=180, in=180] (.5,.5); \draw[looseness=2.3, overcross=red] (-.5,-.5) to[out=0,in=0] (-.5,.5);}}
\newcommand{\RIIIa}[1][]{\tikz[knot, #1]{\draw[red] (-120:.58) to[out=60,in=-120] (150:.2) to[out=60, in=-120] (60:.58); \draw[rotate=-120, overcross=blue] (-120:.58) to[out=60, in=-120] (150:.2) to[out=60, in=-120] (60:.58); \draw[rotate=120, overcross=green!80!black] (-120:.58) to[out=60, in=-120] (150:.2) to[out=60, in=-120] (60:.58);}}
\begin{document}
\begin{enumerate}[label=(\Roman*)]
\item \RIa\myarrow\RIb\myarrow\RIa[yscale=-1]
\item \RIIa\myarrow\RIIb\myarrow\RIIc
\item \RIIIa\myarrow\RIIIa[rotate=180]\qquad\RIIIa[xscale=-1]\myarrow\RIIIa[xscale=-1, rotate=180]
\end{enumerate}
\end{document}