Dibuja una cuadrícula en forma de anillo usando Tikz.

Dibuja una cuadrícula en forma de anillo usando Tikz.

Estoy intentando visualizar algunas transformaciones de la cuadrícula en un informe que estoy escribiendo. Estoy contento con la cuadrícula del lado izquierdo en la figura que adjunté y ahora necesito crear una malla anular que se muestra a la derecha. Es importante que tengan el mismo número de puntos. Como el de la izquierda es de 10 por 10, el de la derecha debe tener 10 puntos a lo largo de la circunferencia y 10 en la dirección normal de la pared. ingrese la descripción de la imagen aquí

Aquí está el código que utilicé para generar el izquierdo:

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

¿Tienes algún consejo?

¡Gracias!

Respuesta1

Actualizar:Después de releer tu pregunta, me doy cuenta de que quieres un anillo, no un toroide. Reemplace el scopeaquí en el código original:

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

ingrese la descripción de la imagen aquí

Supongo que solo quieres que sean visibles 5 regiones longitudinales, ya que las otras 5 están en la parte posterior.

Solución original:

Algunas sugerencias:

  • Usargrid para simplificar el código de la cuadrícula rectangular.
  • Los nodos pueden incluirse en el\draw comandos para una ubicación más sencilla.
  • A scopepuede facilitar los cálculos, permitiendo coordenadas polares para el toro.

ingrese la descripción de la imagen aquí

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

información relacionada