如何用 Tikz 製作這個 3D 圖?

如何用 Tikz 製作這個 3D 圖?

我想將此圖納入我的工作中

在此輸入影像描述

但是,我不知道如何開始,因為我從未使用過 tikz,但我的交換圖使用了更溫和的 tikzcd。我應該指出三件事,我絕對不知道如何將它們引入任何類型的圖表中:

  • 圖中,出現一個圓圈,裡面有一個 1。它應該出現在它所在的地方,並且按原樣出現。
  • 箭頭
  • 如果您注意到,與兩個立方體相交的面的元素有一定的傾斜度,因此它們與相應的線平行。模仿這種效果會很酷。

我知道公開一些提出問題的人嘗試過的程式碼是習慣性的,但就我而言,我絕對沒有 tikz 的經驗...

抱歉給您帶來不便,謝謝。

答案1

第一次嘗試。這不是一個漂亮的程式碼,但可以使用該3d庫。

\documentclass{standalone}
\newcommand{\Tcall}{\mathcal{T}}
\newcommand{\Scall}{\mathcal{S}}
\usepackage{tikz}
\usetikzlibrary{3d,positioning}
\begin{document}
\begin{tikzpicture}[z={(10:10mm)},x={(-45:5mm)}]
\def\step{2cm}
\begin{scope}[canvas is zy plane at x=-2]
\node(fGs){$\Gamma(\overline{\Scall})$};
\node[right=\step of fGs,transform shape](H1MS) {$H^1(M,\Scall)$};
\node[right=\step of H1MS,transform shape] (f0) {$0$};
\node[right=\step of f0,transform shape] (v1) {};

\node[below=\step of fGs](fG) {$\Gamma(\Scall)$};
\node[right=\step of fG,transform shape](H1MSs) {$\tilde{H}^1(M,\Scall)$};
\node[right=\step of H1MSs,transform shape] (s0) {$0$};
\node[right=\step of s0,transform shape] (v2) {};

\draw[->,transform shape] (fGs) -- (H1MS);
\draw[->,transform shape] (H1MS) -- (f0);
\draw (f0) -- (v1);
\draw[->,transform shape] (fGs) -- (fG);

\draw[->,transform shape] (fG) -- (H1MSs);
\draw[->,transform shape] (H1MSs) -- (s0);
\draw (s0) -- (v2);
\draw[->,transform shape] (H1MS) -- (H1MSs);
\draw[->,transform shape] (f0) -- (s0);
\end{scope}

\begin{scope}[canvas is zy plane at x=2]
\node(fIs){$\Gamma(\overline{\Tcall})$};
\node[right=\step of fIs,transform shape](H1MI) {$H^1(M,\Tcall)$};
\node[right=\step of H1MI,transform shape] (t0) {$0$};
\node[right=\step of t0,transform shape] (v3) {};

\node[below=\step of fIs](fI) {$\Gamma(\Tcall)$};
\node[right=\step of fI,transform shape](H1MIs) {$\tilde{H}^1(M,\Tcall)$};
\node[right=\step of H1MIs,transform shape] (fo0) {$0$};
\node[right=\step of fo0,transform shape] (v4) {};

\draw[->,transform shape] (fIs) -- (H1MI);
\draw[->,transform shape] (H1MI) -- (t0);
\draw (t0) -- (v3);
\draw[->,transform shape] (fIs) -- (fI);

\draw[->,transform shape] (fI) -- (H1MIs);
\draw[->,transform shape] (H1MIs) -- (fo0);
\draw (fo0) -- (v4);
\draw[->,transform shape] (H1MI) -- (H1MIs);
\draw[->,transform shape] (t0) -- (fo0);
\end{scope}

\draw[->] (fGs) -- (fIs);
\draw[->] (fG) -- (fI);
\draw[->] (H1MS) -- (H1MI);
\draw[->] (H1MSs) -- (H1MIs);
\draw[->] (f0) -- (t0);
\draw[->] (s0) -- (fo0);


\path (H1MS) -- (H1MIs) node[midway, circle, inner sep=0pt,draw] {1}; 
\end{tikzpicture}
\end{document}

在此輸入影像描述

一些小小的改進

\documentclass{standalone}
\newcommand{\Tcall}{\mathcal{T}}
\newcommand{\Scall}{\mathcal{S}}
\usepackage{tikz}
\usetikzlibrary{3d,positioning,decorations.markings}
\begin{document}
\begin{tikzpicture}[z={(10:10mm)},x={(-45:5mm)},
decoration={markings,
mark=at position .65 with {\arrow[transform shape]{latex}}},
conn/.style={thick,postaction={decorate}}]
\def\step{2cm}
\begin{scope}[canvas is zy plane at x=-2]
\node(fGs){$\Gamma(\overline{\Scall})$};
\node[right=\step of fGs,transform shape](H1MS) {$H^1(M,\Scall)$};
\node[right=\step of H1MS,transform shape] (f0) {$0$};
\node[right=\step of f0,transform shape] (v1) {};

\node[below=\step of fGs](fG) {$\Gamma(\Scall)$};
\node[right=\step of fG,transform shape](H1MSs) {$\tilde{H}^1(M,\Scall)$};
\node[right=\step of H1MSs,transform shape] (s0) {$0$};
\node[right=\step of s0,transform shape] (v2) {};

\draw[conn] (fGs) -- (H1MS);
\draw[conn] (H1MS) -- (f0);
\draw[thick] (f0) -- (v1);
\draw[conn] (fGs) -- (fG);

\draw[conn] (fG) -- (H1MSs);
\draw[conn] (H1MSs) -- (s0);
\draw[thick] (s0) -- (v2);
\draw[conn] (H1MS) -- (H1MSs);
\draw[thick] (f0) -- (s0);
\end{scope}

\begin{scope}[canvas is zy plane at x=2]
\node(fIs){$\Gamma(\overline{\Tcall})$};
\node[right=\step of fIs,transform shape](H1MI) {$H^1(M,\Tcall)$};
\node[right=\step of H1MI,transform shape] (t0) {$0$};
\node[right=\step of t0,transform shape] (v3) {};

\node[below=\step of fIs](fI) {$\Gamma(\Tcall)$};
\node[right=\step of fI,transform shape](H1MIs) {$\tilde{H}^1(M,\Tcall)$};
\node[right=\step of H1MIs,transform shape] (fo0) {$0$};
\node[right=\step of fo0,transform shape] (v4) {};

\draw[conn] (fIs) -- (H1MI);
\draw[conn] (H1MI) -- (t0);
\draw[thick] (t0) -- (v3);
\draw[conn] (fIs) -- (fI);

\draw[conn] (fI) -- (H1MIs);
\draw[conn] (H1MIs) -- (fo0);
\draw[thick] (fo0) -- (v4);
\draw[conn] (H1MI) -- (H1MIs);
\draw[thick] (t0) -- (fo0);
\end{scope}

\draw[conn] (fGs) -- (fIs);
\draw[conn] (fG) -- (fI);
\draw[conn] (H1MS) -- (H1MI);
\draw[conn] (H1MSs) -- (H1MIs);
\draw[thick] (f0) -- (t0);
\draw[thick] (s0) -- (fo0);


\path (H1MS) -- (H1MIs) node[midway, circle, inner sep=0pt,draw] {1}; 
\end{tikzpicture}
\end{document}

在此輸入影像描述

答案2

pst-node與的可能性pst-arrow

\documentclass{article}
\usepackage{fourier} 
\usepackage{pst-node, pst-arrow}
\usepackage{auto-pst-pdf}

\begin{document}

\[ \begin{psmatrix}[rowsep=0.6cm, colsep=1.7cm]
& & & [name=0E] 0 & \pnode[0,2.7ex]{IE}\\
    [name=GE]\Gamma(\bar{\mathcal{E}}) & & & & [name=0T] 0 &  \pnode[0,2.7ex]{IT}\\
    & [name=GT]\Gamma(\,\overline{\!\mathcal{T}\!}\,) \\
     & & & [name=0Eb] 0 &  \pnode[0,2.7ex]{IEb} \\
  [name=GEb] \Gamma(\bar{\mathcal{E}}) & & & & [name=0Tb]0 &  \pnode[0,2.7ex]{ITb} \\
    & [name=GTb] \Gamma(\,\overline{\!\mathcal{T}\!}\,)
    \end{psmatrix}
    {\psset{linestyle=none, nrot=:U}%
    \ncline{GE}{0E}\ncput*{\rnode{HE}{H^1(M, \mathcal{E})}}
    \ncline{GT}{0T}\ncput*{\rnode{HT}{H^1(M, \mathcal{T})}}
    \ncline{GEb}{0Eb}\ncput*{\rnode{HEb}{\tilde{H}^1(M, \mathcal{E})}}
    \ncline{GTb}{0Tb}\ncput*{\rnode{HTb}{\tilde{H}^1(M, \mathcal{T})}}
    }%
    \ncline{0E}{0T}\ncline{0T}{0Tb}\ncline{0Tb}{0Eb}\ncline{0E}{0Eb}
    {\psset{nodesepA=1pt} %
    \ncline{0E}{IE}\ncline{0T}{IT} \ncline{0Eb}{IEb}\ncline{0Tb}{ITb}}%
    {\psset{arrowinset=0.12, ArrowInside=->, nodesepB=3pt}%
    \ncline{HE}{0E}
    \ncline{HT}{0T}
    \ncline{HEb}{0Eb}
    \ncline{HTb}{0Tb}
    \psset{ArrowInsidePos=0.66, }
    \ncline{GE}{GEb}\ncline{GEb}{GTb}
    \ncline{GE}{GT}\ncline{GT}{GTb}
    \ncline{HE}{HT}\ncline{HT}{HTb}
    \ncline{HE}{HEb}\ncline{HEb}{HTb}
    }
    \psset{arrows=->}
    \ncline{GE}{HE}\ncline{GT}{HT}
    \ncline{GEb}{HEb}\ncline{GTb}{HTb}
    %
    \]

    \end{document} 

在此輸入影像描述

相關內容