Zeichnen Sie mit Tikz ein ringförmiges Gitter

Zeichnen Sie mit Tikz ein ringförmiges Gitter

Ich versuche, in einem Bericht, den ich gerade schreibe, einige Gittertransformationen zu visualisieren. Ich bin mit dem linken Gitter in der Abbildung, die ich angehängt habe, zufrieden und muss nun einen ringförmigen Maschenring erstellen, der rechts dargestellt ist. Es ist wichtig, dass sie die gleiche Anzahl von Punkten haben. Da das linke Gitter 10 x 10 ist, sollte das rechte Gitter 10 Punkte entlang des Umfangs und 10 in der Normalenrichtung der Wand haben. Bildbeschreibung hier eingeben

Hier ist der Code, den ich zum Generieren des linken verwendet habe:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\usetikzlibrary{calc}

\begin{document}
\begin{figure}[h!]
    \centering
    \begin{tikzpicture}
        \coordinate (A) at (0,0);
        \coordinate (B) at (3,0);
        \coordinate (C) at (3,3);
        \coordinate (D) at (0,3);

        \foreach [evaluate=\i as \x using \i/10] \i in {0,...,10} 
        {
            \draw ($(A)!\x!(B)$) arc -- ($(D)!\x!(C)$);
            \draw ($(A)!\x!(D)$) -- ($(B)!\x!(C)$);
        }   
        \draw[->, >= Latex] (-0.1, -0.1) -- (1, -0.1);
        \draw[->, >= Latex] (-0.1, -0.1) -- (-0.1, 1);
        \draw[->, >= Latex] (-0.1, -0.1) -- (0.5, 0.5);
        \node[] at (1, -0.35) (y) {$\zeta$};
        \node[] at (-0.35, 1) (x) {$\eta$};
        \node[] at (-0.35, -0.10) (x) {$\xi$};
        \draw[->, >= Latex] (3.5, 1.5) -- (4.5, 1.5);
    \end{tikzpicture}
    \caption{Visualisation of a mapping from a computational grid to a physical space using 2D section.}
\end{figure}
\end{document}

Hast du irgendeinen Ratschlag?

Danke!

Antwort1

Aktualisieren:Nachdem ich Ihre Frage noch einmal gelesen habe, ist mir klar geworden, dass Sie einen Ring und keinen Torus wollen. Ersetzen Sie das scopehier im Originalcode:

\begin{scope}[shift={(7,1.5)}]
    \foreach \t in {0,...,10}{
        \draw (0,0) circle[radius=1+.1*\t];
        \draw (36*\t:1)--(36*\t:2);
    }
\end{scope}

Bildbeschreibung hier eingeben

Ich gehe davon aus, dass Sie nur 5 sichtbare Längsbereiche haben möchten, da sich die anderen 5 auf der Rückseite befinden.

Ursprüngliche Lösung:

Einige Vorschläge:

  • Wird verwendet grid, um den Code für das rechteckige Raster zu vereinfachen.
  • \drawZur einfacheren Platzierung können Knoten in die Befehle aufgenommen werden .
  • A scopekann die Berechnungen vereinfachen, indem Polarkoordinaten für den Torus zugelassen werden.

Bildbeschreibung hier eingeben

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{arrows.meta}

\begin{document}

\begin{figure}[h!]
    \centering
        \begin{tikzpicture}
        \draw[step=3mm] (0,0)grid(3,3);
        \draw[-Latex] (-0.1, -0.1) -- (1, -0.1) node[below]{$\zeta$};
        \draw[-Latex] (-0.1, -0.1) -- (-0.1, 1) node[left]{$\eta$};
        \draw[-Latex] (-0.1, -0.1) node[left]{$\xi$} -- (0.5, 0.5);
        
        \draw[-Latex] (3.5, 1.5) -- (4.5, 1.5);
        \begin{scope}[shift={(7,1.5)}]
            \foreach \t in {0,36,...,360}{
                \draw (0,0) circle[radius=1.5+.5*cos(\t)];
                \draw (\t:1)--(\t:2);
            }
        \end{scope} 
    \end{tikzpicture}
    \caption{Visualisation of a mapping from a computational grid to a physical space using 2D section.}
\end{figure}

\end{document}

verwandte Informationen