
Ich möchte eine Animation erstellen, Beamer
um die Fläche eines Kreises mit regelmäßigen Polygonen anzunähern. Dazu muss ich konzentrische Polygone überlappen. Die Animation wird den überlappenden Teil zeigen. Ich versuche es mit dem folgenden Code
\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}
Beim Kompilieren wird der Fehler „ File ended while scanning use of \pgffor@next.
Wenn ich das \only<+>
Teil entferne, läuft der Code einwandfrei“ erzeugt. Wie erhalte ich in diesem Fall die Animation?
PS.:Außerdem möchte ich den Mittelpunkt mit den Eckpunkten jedes Polygons verbinden, um das gesamte Polygon in Dreiecke aufzuteilen. Wie erreiche ich das? Vielen Dank im Voraus.
Antwort1
Versuchen:
\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}
Die Anweisung only<+>
musste in einer Gruppe mit Knotenzeichnungen stehen, d. h. in Ihrem Code fehlt ein Paar geschweifter Klammern (Definition der Gruppe). Siehe Kommentare im obigen MWE.
Bearbeiten: Zur zweiten Frage: Sie müssen eine neue Schleife hinzufügen, in der Sie Linien zwischen den Mittelpunkten der Polygone und ihren Ecken zeichnen. Ein vollständiges MWE mit dieser Schleife lautet:
\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}
Für das letzte Polygon lautet das Ergebnis: