トーリックコード格子図

トーリックコード格子図

私は Overleaf でトーリック コードに関する論文を書いています。そのために、次の図を描きたいと思っています。

  1. プラケット演算子と頂点演算子の例を示した格子の図
  2. 文字列演算子の例を含む格子の図
  3. トーラスの表面にグリッドが描かれたトーラスの図

私はいくつかの調査を行ってきましたが、トーラスの表面に点の格子をプロットするにはどうすればよいでしょうか?質問は図 3 に非常に役立ちましたが、グリッドを作成するために表面の矢印を線に変更する方法がわかりません。コードと変更したい点をコピーします。

\documentclass[twocolumn]{revtex4}
\usepackage[inline]{asymptote}
\begin{document}
\begin{figure}[h]
\centering
\begin{asy}[width=5cm,height=5cm]
size(200);
import graph3;

pen surfPen=rgb(1,0.7,0);
pen xarcPen=deepblue+0.7bp;
pen yarcPen=deepred+0.7bp;

currentprojection=perspective(5,4,4);

real R=2;
real a=1;

triple fs(pair t) {
  return ((R+a*Cos(t.y))*Cos(t.x),(R+a*Cos(t.y))*Sin(t.x),a*Sin(t.y));
}

surface s=surface(fs,(0,0),(360,360),8,8,Spline);
draw(s,surfPen,render(compression=Low,merge=true));

int m=20;
int n=10;
real arcFactor=0.85;

pair p,q;

for(int i=1;i<=n;++i){
  for(int j=0;j<m;++j){
    p=(j*360/m,(i%n)*360/n);
    q=(((j+arcFactor)%m)*360/m,i*360/n);
    draw(fs(p)..fs((p+q)/2)..fs(q),xarcPen,Arrow3(size=4));
    q=(j*360/m,((i%n)-arcFactor)*360/n);
    draw(fs(p)..fs((p+q)/2)..fs(q),yarcPen,Arrow3(size=3));
    dot(fs(p));
  }
}
\end{asy}
\end{figure}
\end{document}

つまり、実際には、線の矢印を変更するコマンドによって「Arrow3」を変更したいだけです。

図1)と2)に関して、トーリックコードに馴染みのない方のために、記事から引用したこの図https://www.physics.rutgers.edu/grad/602/Lectures/JC_Presentations/0419/Intro_Toric_Code.pdf完璧な例です:ここに画像の説明を入力してください

したがって、このような図があれば素晴らしいでしょう (もちろん、これをコピーしたくはありませんが)。

tikz、asymptote、または他の役に立つ可能性のあるアプリケーションを使用して実行してもかまいません。役立つヘルプやドキュメントはありますか? よろしくお願いします。

関連情報