动画:如何连续地移动方程的位置?

动画:如何连续地移动方程的位置?

我想让方程式(或单词)在页面中连续移动,以便进行投影仪演讲。一个简单的例子是,左边距有“A”,右边距有“B”,然后“A”向“B”下方移动,形成除法 B/A。

我考虑过将 texpos 包与 animate 包一起使用,因此我并没有将所有内容都放在 tikz 图片中。由于我从未使用过 animate 包,因此我正在寻找类似的例子。

在 TeXample 上,我发现的动画示例都是关于图片和图形的动画。在这里,我发现的所有“动画”问题都意味着以连续的方式改变方程式,但不改变其位置。

答案1

下面我提出两个选择。

使用animate

这是一个简单的例子,使用animate包装。最初,您会看到“A”和“B”相距四厘米,且高度相同:当您播放动画时(请使用 Acrobat Reader(限制animate)),“A”开始向“B”移动,并在“B”正下方结束:

\documentclass{beamer}
\usepackage{animate}
\usepackage{ifthen}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\hypersetup{pdfpagemode=FullScreen}

\newcounter{tmp}
\stepcounter{tmp}
\def\Steps{20}

\begin{document}

\begin{frame}[fragile]{}
\begin{center}
\begin{animateinline}[loop,poster=first,controls]{2}
\whiledo{\thetmp<\Steps}{%
  \begin{tikzpicture}[
  decoration={
      markings,
      mark={
      at position \thetmp/(\Steps-1)
      with {\node {$A$};}}
      }]
    \coordinate (start) at (-2,0);
    \coordinate (end) at (2,0);
    \node at (end) {$B$};
    \path[postaction={decorate}]
      ([yshift=.35ex]start) to[out=-20,in=200] ([yshift=-3ex]end);
    \path[use as bounding box] (-3,-3) rectangle (3,3);
  \end{tikzpicture}%
  \stepcounter{tmp}
  \ifthenelse{\thetmp<\Steps}
    {\newframe}
    {\end{animateinline}\relax}
}
\end{center}
\end{frame}

\end{document}

我不知道如何转换这种类型的动画以便上传。

这个想法是将“A”放置在 a 中\node,并使用装饰(来自库)使“A”移动;通过改变装饰的键来decorations.markings实现移动;将装饰作为 a 应用于“B”正下方结束的弯曲路径。at positionpostaction

增加该值\Steps(最初设置为 20)会使运动更加“连续”。

为了直观地了解所用路径,您可以添加draw到路径中;即替换

\path[postaction={decorate}]
      ([yshift=.35ex]start) to[out=-20,in=200] ([yshift=-3ex]end);

\path[draw,postaction={decorate}]
      ([yshift=.35ex]start) to[out=-20,in=200] ([yshift=-3ex]end);

使用覆盖规范和\foreach循环

现在第二种选择是使用覆盖规范和循环来“伪造”真实动画:

\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}

\def\Steps{40}

\begin{document}

\begin{frame}
\begin{center}
  \begin{tikzpicture}
  \coordinate (start) at (-3,0);
  \coordinate (end) at (3,0);
  \node at (end) {$B$};
  \foreach \Cont in {1,...,\Steps}
  \path<\Cont>[
  decoration={
    markings,
      mark=%
      at position \Cont/\Steps
      with {\node {A};}
  },
  postaction={decorate}]
    ([yshift=0.35ex]start) to[out=-30,in=210] ([yshift=-3ex]end);
  \end{tikzpicture}%
\end{center}
\end{frame}

\end{document}

在此处输入图片描述

相关内容