Operador Beamer e \foreach

Operador Beamer e \foreach

Esta é a minha primeira figura tentando colocá-la noprojetorcom \foreach.

Para alguns de vocês pode ser trabalho de cinco minutos... mas para mim consumiu a manhã inteira...

Então minha pergunta:Como posso separar framecada imagem produzida pelo \foreachoperador. O \newframeinterior \foreachnão funciona.

Meu golera fazer com que tivesse movimento (reverso no sentido anti-horário)... mas não emaranhar duas questões juntas

\documentclass{beamer}%{book}
\usepackage[utf8x]{inputenc}
\usepackage{default}
\usepackage{tikz}
\usetikzlibrary{calc} 
\usetheme{Warsaw} 
\usecolortheme{whale}

\begin{document}
%
\begin{frame}{rotating - test}
%
\begin{center}
\begin{tikzpicture}[scale=2]
\draw[thin,gray,step=0.25] (-1,-1) grid (1,1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\draw[->] (-1.5,0)  -- (1.5,0) node[below]{$\phi_0$};
\draw[->] (0,-1.5)  -- (0,1.5) node[left]{$x$};
\draw[thick] (0,0) circle [radius=1];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\coordinate (C1) at (1,0);
\coordinate (C2) at (0.86,0.5);
\coordinate (C3) at (0.7,0.7);
\coordinate (C4) at (0.5,0.86);
\coordinate (C5) at (0,1);
\coordinate (C6) at (-0.5,0.86);
\coordinate (C7)at(-0.7,0.7);
\coordinate (C8)at(-0.86,0.5);
\coordinate (C9) at (-1,0);
\coordinate (C10) at (-0.86,-0.5);
\coordinate (C11)at(-0.7,-0.7);
\coordinate (C12) at (-0.5,-0.86);
\coordinate (C13) at (0,-1);
\coordinate (C14) at (0.5,-0.86);
\coordinate (C15) at (0.7,-0.7);
\coordinate (C16) at (0.86,-0.5);
% 
\foreach \Ctest in {(C1),(C2),(C3),(C4),(C5),(C6),
(C7),(C8),(C9),(C10),(C11),(C12),(C13),(C14),(C15),(C16)}{%
\draw [dashed] let \p1 = \Ctest
      in
    (\x1,\y1) -- (0,\y1)
    (\x1,\y1) -- (0,0);
\draw [red,thick,->] let \p1 = \Ctest
      in
    (0,0) -- (0,\y1) node[left] {$x$};
\draw [red,thick] let \p1 = \Ctest,
      \n1={atan2(\x1,\y1)}
      in
  (1,0) arc (0:\n1:1)
  (0,0)--(0.251,0) arc (0:\n1:0.25)--cycle;
\draw[fill=red] \Ctest circle [radius=0.06];
% \newframe %<<================================================
};
\end{tikzpicture}
%
\end{center}
%
\end{frame}
\end{document}

insira a descrição da imagem aqui

1 atualização:Após resposta de @Claudio Fiandrino e @Gonzalo Medina tenho esse valor. O problema agora é que eu quero que a "órbita" do corpo vermelho tenha um arco crescente contínuo, mas o ângulo acima de 180 graus não está definido insira a descrição da imagem aqui

Responder1

TikZe beamerestão bem integrados; em particular, os comandos TikZ reconhecem sobreposição, então você pode dizer, por exemplo \draw<+-> ...; neste caso particular, a count=<macro>sintaxe pode ser usada (comoCaludio Fiandrinosugerido em seu comentário) para manter cada posição no loop e depois usar <macro>para a especificação de sobreposição:

O código original pode ser altamente simplificado se, em vez de atribuir coordenadas, \Ctesttrabalharmos com ângulos:

\documentclass{beamer}%{book}
\usepackage[utf8x]{inputenc}
\usepackage{tikz}
\usetikzlibrary{calc} 
\usetheme{Warsaw} 
\usecolortheme{whale}

\begin{document}

\begin{frame}{rotating - test}

\begin{center}
\begin{tikzpicture}[scale=2]
\draw[thin,gray,step=0.25] (-1,-1) grid (1,1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\draw[->] (-1.5,0)  -- (1.5,0) node[below]{$\phi_0$};
\draw[->] (0,-1.5)  -- (0,1.5) node[left]{$x$};
\draw[thick] (0,0) circle [radius=1];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\foreach \Ctest[count=\i] in {0,30,45,60,90,120,135,150,180,210,225,240,270,300,315,330,360}{%
\draw<\i> [dashed] 
  (0,0) -- (\Ctest:1) -- (0,{sin(\Ctest)}) 
 node[left,red] {$x$};
\draw<\i> [red,thick] 
  (0,0)--(0.251,0) arc (0:\Ctest:0.25) --  cycle;
\draw<\i> [->,red,thick] 
  (0,0) -- (0,{sin(\Ctest)});
\draw<\i>[fill=red] ({cos(\Ctest)},{sin(\Ctest)}) circle [radius=0.06];
}
\end{tikzpicture}
\end{center}

\end{frame}

\end{document}

insira a descrição da imagem aqui

E com o código original:

\documentclass{beamer}%{book}
\usepackage[utf8x]{inputenc}
%\usepackage{default}
\usepackage{tikz}
\usetikzlibrary{calc} 
\usetheme{Warsaw} 
\usecolortheme{whale}


\begin{document}
%
\begin{frame}{rotating - test}
%
\begin{center}
\begin{tikzpicture}[scale=2]
\draw[thin,gray,step=0.25] (-1,-1) grid (1,1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\draw[->] (-1.5,0)  -- (1.5,0) node[below]{$\phi_0$};
\draw[->] (0,-1.5)  -- (0,1.5) node[left]{$x$};
\draw[thick] (0,0) circle [radius=1];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\coordinate (C1) at (1,0);
\coordinate (C2) at (0.86,0.5);
\coordinate (C3) at (0.7,0.7);
\coordinate (C4) at (0.5,0.86);
\coordinate (C5) at (0,1);
\coordinate (C6) at (-0.5,0.86);
\coordinate (C7)at(-0.7,0.7);
\coordinate (C8)at(-0.86,0.5);
\coordinate (C9) at (-1,0);
\coordinate (C10) at (-0.86,-0.5);
\coordinate (C11)at(-0.7,-0.7);
\coordinate (C12) at (-0.5,-0.86);
\coordinate (C13) at (0,-1);
\coordinate (C14) at (0.5,-0.86);
\coordinate (C15) at (0.7,-0.7);
\coordinate (C16) at (0.86,-0.5);
% 
\foreach \Ctest[count=\i] in {(C1),(C2),(C3),(C4),(C5),(C6),
(C7),(C8),(C9),(C10),(C11),(C12),(C13),(C14),(C15),(C16)}{%
\draw<\i> [dashed] let \p1 = \Ctest
      in
    (\x1,\y1) -- (0,\y1)
    (\x1,\y1) -- (0,0);
\draw<\i> [red,thick,->] let \p1 = \Ctest
      in
    (0,0) -- (0,\y1) node[left] {$x$};
\ifnum\i<9\relax
{\draw<\i> [red,thick] let \p1 = \Ctest,
      \n1={atan2(\x1,\y1)}
      in
  (0,0)--(0.251,0) arc (0:\n1:0.25)--cycle;
}
\else
{
\draw<\i> [red,thick]
  (0.25,0mm) arc (0:180:0.25);
\draw<\i> [red,thick] let \p1 = \Ctest,
      \n1={atan2(-\x1,\y1)}
      in
  (0,0)--(-0.251,0) arc (0:-\n1:-0.25)--cycle;
}
\fi
\draw<\i>[fill=red] \Ctest circle [radius=0.06];
};
\end{tikzpicture}
%
\end{center}
%
\end{frame}
\end{document}

informação relacionada