在框架周围移动一些图形

在框架周围移动一些图形

我尝试将一些图形(例如字母 A)从框架的一个点(例如中心)到另一个点(例如西北角)制作成动画。

\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{animate}

\begin{document}
\begin{frame}{Animation}
  \begin{animateinline}[autoplay]{20}
        \multiframe{30}{i=0+1}{\begin{tikzpicture}[remember picture, overlay] 
        \node at ($(current page.center)!{\i/31}!(current page.north west)$){A};
        \end{tikzpicture}}
    \end{animateinline}
\end{frame}
\end{document}

显然,前面的代码不起作用,因为“第一帧的内容不能为零宽度”。有什么办法吗?

答案1

animate制作的动画在 PDF 小部件中运行,该小部件“浮动”在正常页面内容之上。动画帧决定了此小部件的大小,显然,该小部件在 x 和 y 上应为非零。但是,“ overlay, remember picture”选项使tikzpicture动画帧的大小为零。因此出现错误。

为了解决这个问题,tikzpicture可以将其做成与幻灯片一样大,并放入幻灯片背景中。(但是,它仍然会浮在 PDF 查看器的顶部。)

\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{animate}

\begin{document}

\AtBeginShipoutNext{%
  \AtBeginShipoutUpperLeft{%
    \unitlength=\paperheight%
    \put(0,-1){%
      \begin{animateinline}[autoplay]{30}
        \multiframe{31}{i=0+1}{
          \begin{tikzpicture}[x=\paperwidth,y=\paperheight]
            \useasboundingbox (0,0) rectangle (1,1);
            \node at ($(0.5,0.5)!{\i/30}!(0,1)$){A};
          \end{tikzpicture}
        }
      \end{animateinline}%
    }%
  }%
}%

\begin{frame}{Animation}
  % add "normal" content here.
\end{frame}

\end{document}

相关内容