Toric碼點陣圖

Toric碼點陣圖

我正在用 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),對於那些不熟悉 toric 程式碼的人,這張圖片來自文章https://www.physicals.rutgers.edu/grad/602/Lectures/JC_Presentations/0419/Intro_Toric_Code.pdf是一個完美的例子:在此輸入影像描述

所以像這樣的數字會很棒(儘管顯然我不想複製它)。

我不介意它是用 tikz、asymptote 或任何其他可能有用的應用程式完成的。有什麼幫助或文件可能有幫助嗎?多謝。

相關內容