
Quiero crear una animación Beamer
para aproximar el área de un círculo con polígonos regulares. Para eso, necesito superponer polígonos concéntricos. La animación será de la parte superpuesta. Estoy intentando con el siguiente código.
\documentclass[aspectratio=169,10pt, notheorems]{beamer}
\usepackage{tikz}
\usepackage{pgf}
\usepackage{xcolor}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{frame}
\begin{figure}
\begin{tikzpicture}[scale=2]
\node [draw, minimum size=3cm, circle] at (0,0) {};
\foreach \n in {3,...,10}
\only<+>
{
\node [fill, brown, minimum size=3cm, regular polygon, regular polygon sides=\n] at (0,0) {};
}
\end{tikzpicture}
\end{figure}
\end{frame}
\end{document}
En la compilación, esto produce el error. File ended while scanning use of \pgffor@next.
Si elimino la \only<+>
pieza, el código funciona bien. ¿Cómo obtengo la animación en ese caso?
PD.:Además, quiero unir el centro con los vértices de cada polígono para dividir todo el polígono en triángulos. ¿Cómo logro eso? Gracias de antemano.
Respuesta1
Intentar:
\documentclass[aspectratio=169, notheorems]{beamer}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{frame}
\begin{figure}
\begin{tikzpicture}[scale=2]
\node [draw, minimum size=3cm, circle] {};
\foreach \n in {3,...,10}
{ % <-- added
\only<+>
{
\node [fill=brown, minimum size=3cm,
regular polygon, regular polygon sides=\n] {};
}
}% <-- added
\end{tikzpicture}
\end{figure}
\end{frame}
\end{document}
La instrucción only<+>
tenía que estar en grupo con dibujos de nodos, es decir, en su código faltan un par de llaves (que definen el grupo). Ver comentarios en MWE arriba.
Editar: Para la segunda pregunta: necesitas agregar un nuevo bucle en el que dibujes líneas entre el centro de los polígonos y sus esquinas. MWE completo con este bucle es:
\documentclass[aspectratio=169, notheorems]{beamer}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{frame}
\begin{figure}
\begin{tikzpicture}[scale=2]
\node [draw, minimum size=3cm, circle] {};
\foreach \n in {3,...,10}
{
\uncover<+> % or \only
{
\node (n\n) [fill=brown, minimum size=3cm,
regular polygon, regular polygon sides=\n] {};
\foreach \i in {1,...,\n} % <--- added
\draw (0,0) -- (n\n.corner \i);% <--- added
}
}
\end{tikzpicture}
\end{figure}
\end{frame}
\end{document}
Para el último polígono el resultado es: