使用动画时的 TikZ 绘制顺序

使用动画时的 TikZ 绘制顺序

我在 TikZ 图像中使用动画时遇到问题:

我喜欢用一个图形覆盖另一个图形

\path(fig) node[anchor = north, inner sep=0pt,outer sep=5pt] {
FIGURE1
}

\path(fig) node[anchor = north, inner sep=0pt,outer sep=5pt] {
FIGURE2 over FIGURE1
}

在我使用动画之前,这都可以正常工作:

\path(fig) node[anchor = north, inner sep=0pt,outer sep=5pt] {
\begin{animateinline}[loop,autoplay]{2}
  \multiframe{8}{ipic=1+1}{
FIGURE1_\ipic
  }
\end{animateinline}
}

\path(fig) node[anchor = north, inner sep=0pt,outer sep=5pt] {
FIGURE2 over FIGURE1
}

第一个 FIGURE1 现在是动画,但 FIGURE2 位于 FIGURE1 下方。使用 pgfonlayer/background 没有帮助。有人有想法吗?

这是一个简单的例子。在第二帧中,动画背景出现,但它应该保留在蓝色块下方。我知道的唯一解决方案是将“animateinline”环境放在整个 tikz 图片周围,但这不是我想要的。

\documentclass{beamer}

\usepackage{animate}
\usepackage{tikz}

\begin{document}
\begin{frame}

\centering
\begin{tikzpicture}

\path (0,0) node[anchor = north] {%
BACKGROUND
};

\path (0,0) node[anchor = north,fill=blue] {%
\color{red}HOLLA DIE WALDFEE OVERLAY
};


\end{tikzpicture}

\end{frame}

\begin{frame}

\centering
\begin{tikzpicture}


\path (0,0) node[anchor = north,fill=green] {%
\begin{animateinline}[loop,autoplay]{2}
  \multiframe{8}{inum=1+1}{
\color{green}\bf BACKGROUND \inum
  }
\end{animateinline}
};

\path (0,0) node[anchor = north,fill=blue] {%
\color{red}HOLLA DIE WALDFEE OVERLAY
};


\end{tikzpicture}

\end{frame}

\end{document}

答案1

更新

默认情况下,animate生成的动画以 PDF 形式实现小部件注释(交互区域),位于正常页面内容上方的单独层中。因此,它们始终在前台呈现。

当前[20140923]版本的 animate 允许使用基于 PDF 图层的替代动画方法(奥卡特s)其内容直接嵌入在页面内容中,从而尊重绘图(或-)图形对象的顺序。

请注意,默认的基于 Widget 的动画方法通常会随着图形复杂性的增加而表现得更好。

将选项useocg作为包或命令选项。它允许将动画放置在页面背景中:

\documentclass{beamer}

\usepackage[useocg]{animate}[20140923]
\usepackage{tikz}

\begin{document}

\begin{frame}

\centering
\begin{tikzpicture}

  \path (0,0) node[anchor = north,fill=green] {%
    \begin{animateinline}[loop,autoplay]{2}
      \multiframe{8}{inum=1+1}{
        \bf BACKGROUND \inum
      }
    \end{animateinline}
  };

  \path (0,0) node[anchor = north,fill=blue,fill opacity=0.8] {%
    TEXT TO APPEAR IN THE FOREGROUND
  };

\end{tikzpicture}

\end{frame}

\end{document}

相关内容