如何在 \tikz 中保留 \multiframe 中的前几行?

如何在 \tikz 中保留 \multiframe 中的前几行?

大家好,在你们之前的帮助下,我成功地使用 tikzpicture 生成了一条旋转线的动画\multiframe。以下是我的动画的 MWE。

\documentclass{beamer}
\usepackage{tikz}
\usepackage{animate}

\begin{document}
 \begin{frame}
  \centering
  \begin{animateinline}[poster=first]{2}

  % draw rotating line
     \multiframe{20}{rt=0+5}{%
     \resizebox{!}{.8\textheight}{\begin{tikzpicture}

             %draw coordinate axis
             \draw[thick, color=black, -latex] (-4.05,0) -- (4.05,0) node[right]{$x_1$};              
             \draw[thick, color=black, -latex] (0,-3.4) -- (0,3.4) node[above]{$x_2$};

             %draw tilting red line
             \draw[thick, color=red] ({4*cos(\rt)},{4*sin(\rt)}) -- ({-4*cos(\rt)},{-4*sin(\rt)});

        \node at (5,5) {};
        \node at (-5,-5) {}; 

     \end{tikzpicture}}%
     }
  \end{animateinline}
 \end{frame} 
\end{document}

是否有人知道一种方法来保存前几帧上绘制的线条,使得在第一帧上只有一条线,在第二帧上分别有第一帧的线加上新绘制的线和后续帧的线?

除了单独生成所有帧的 pdf 然后使用之外,还有其他方法吗\animategraphics

提前致谢!

答案1

对于此应用程序,\multido命令(包multido)比 PGF 更适合\foreach

\documentclass{beamer}
\usepackage{tikz}
\usepackage{animate}
\usepackage{multido}

\begin{document}
 \begin{frame}
  \centering
  \begin{animateinline}[poster=first]{2}
  % draw rotating line
  \multiframe{20}{i=1+1}{%
     \resizebox{!}{.8\textheight}{\begin{tikzpicture}

         %draw coordinate axis
         \draw[thick, color=black, -latex] (-4.05,0) -- (4.05,0) node[right]{$x_1$};
         \draw[thick, color=black, -latex] (0,-3.4) -- (0,3.4) node[above]{$x_2$};

         %draw tilting red lines
         \multido{\rt=0+5}{\i}{
           \draw[thick, color=red] ({4*cos(\rt)},{4*sin(\rt)}) -- ({-4*cos(\rt)},{-4*sin(\rt)});
         }

        \node at (5,5) {};
        \node at (-5,-5) {};

     \end{tikzpicture}}%
  }
  \end{animateinline}
 \end{frame}
\end{document}

相关内容