Desenhe uma grade em forma de anel usando Tikz

Desenhe uma grade em forma de anel usando Tikz

Estou tentando visualizar algumas transformações da grade em um relatório que estou escrevendo. Estou satisfeito com a grade do lado esquerdo na figura que anexei e agora preciso criar uma malha anular que é mostrada à direita. É importante que eles tenham o mesmo número de pontos. Como o esquerdo tem 10 por 10, o direito deve ter 10 pontos ao longo da circunferência e 10 na direção normal da parede. insira a descrição da imagem aqui

Aqui está o código que usei para gerar o da esquerda:

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

Você tem algum conselho?

Obrigado!

Responder1

Atualizar:Depois de reler sua pergunta, percebi que você deseja um anel, não um toro. Substitua scopeaqui no 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}

insira a descrição da imagem aqui

Presumo que você queira apenas 5 regiões longitudinais visíveis, já que as outras 5 estão na parte traseira.

Solução original:

Algumas sugestões:

  • Use gridpara simplificar o código da grade retangular.
  • Nós podem ser incluídos nos \drawcomandos para um posicionamento mais simples.
  • A scopepode facilitar os cálculos, permitindo coordenadas polares para o toro.

insira a descrição da imagem aqui

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

informação relacionada