Beamer 中的重疊同心多邊形

Beamer 中的重疊同心多邊形

我想創建一個動畫來Beamer近似具有正多邊形的圓的面積。為此,我需要重疊同心多邊形。動畫將是重疊部分。我正在嘗試使用以下程式碼

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

在編譯時,這會產生錯誤File ended while scanning use of \pgffor@next.如果我刪除該\only<+>部分,程式碼運行正常。在這種情況下如何獲得動畫?

附:另外,我想將中心與每個多邊形的頂點連接起來,將整個多邊形分成三角形。我該如何實現這個目標?提前致謝。

答案1

嘗試:

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

指令only<+>必須與節點圖放在一起,也就是在您的程式碼中缺少一對花括號(定義群組)。請參閱上面 MWE 中的評論。

編輯: 對於第二個問題:您需要新增新的循環,在多邊形中心到其角點之間繪製線條。使用此循環的完整 MWE 是:

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

對於最後一個多邊形結果是:

在此輸入影像描述

相關內容