Wie erstelle ich dieses 3D-Diagramm mit Tikz?

Wie erstelle ich dieses 3D-Diagramm mit Tikz?

Ich möchte dieses Diagramm in meine Arbeit einbeziehen

Bildbeschreibung hier eingeben

Ich weiß jedoch nicht, wie ich anfangen soll, da ich für meine kommutativen Diagramme noch nie Tikz verwendet habe, sondern das bescheidenere Tikzcd. Ich sollte auf drei Dinge hinweisen, von denen ich absolut keine Ahnung habe, wie ich sie in irgendeine Art von Diagramm einbauen soll:

  • Im Diagramm erscheint ein Kreis mit einer 1 darin. Er sollte dort erscheinen, wo er ist und so, wie er ist.
  • Die Pfeile
  • Wenn Sie bemerken, haben die Elemente der Fläche, die auf beide Würfel trifft, eine gewisse Neigung, sodass sie parallel zu den entsprechenden Linien verlaufen. Es wäre cool, diesen Effekt nachzuahmen.

Ich weiß, dass es üblich ist, einen Teil des Codes preiszugeben, den der Fragende ausprobiert hat, aber in meinem Fall habe ich absolut keine Erfahrung mit Tikz ...

Entschuldigen Sie die Unannehmlichkeiten und danke.

Antwort1

Ein erster Versuch. Kein schöner Code, aber funktioniert mit der 3dBibliothek.

\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}

Bildbeschreibung hier eingeben

Einige kleine Verbesserungen

\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}

Bildbeschreibung hier eingeben

Antwort2

Eine Möglichkeit mit pst-nodeund 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} 

Bildbeschreibung hier eingeben

verwandte Informationen