Beamer \pause 与 TikZ

Beamer \pause 与 TikZ

有没有办法在 Beamer 中引入tikzpicture带有\pause或类似的部分,而不需要通过tikzpicture多帧逐步重新绘制?

将 TikZ 绘制命令与\pause命令插入会创建新的帧,但会引入(或者在我的情况下,使用\setbeamercovered{highly dynamic},淡入)整个tikzpicture,这有点道理,因为 的内部tikzpicture不是\pause命令的正常环境。

答案1

我发现最简单的方法是为图片元素提供叠加规范。基本命令、、\path等等\draw都是\node叠加感知的。需要注意的一件事是,随着绘图的不同部分被放入或取出,边界框可能会跳动一点。但是,一旦你意识到这一点,那么修复它就很容易了。要么在开始时指定边界框(使用\useasboundingbox),要么在绘图中乱放大量\coordinate始终存在但仅在特定幻灯片上使用的 s。

这是一个使用该技术的相当详细的例子\useasboundingbox

\documentclass{beamer}
\usepackage{tikz}

\begin{document}
\begin{frame}
\begin{center}
\begin{tikzpicture}
\useasboundingbox (-5.2,-3.1) rectangle (5.2,3.1);
\fill[gray!25] (-5.2,-3.1) rectangle (-0.2,3.1);
\draw[ultra thick,red] (-5,0) -- (-0.4,0);
\draw[ultra thick] (-2.7,-3) -- (-2.7,3);
\foreach \t in {-1.5,-1.4,...,1.5} {
\pgfmathsetmacro{\l}{abs(\t/1.5)}
\pgfmathsetmacro{\m}{1 - \l}
\definecolor{currentcolor}{rgb}{\l,0,\m}
\draw[color=currentcolor] (-5,\t) -- (-0.4,\t);
};
\foreach \t in {1.6,1.7,...,3} {
\pgfmathsetmacro{\l}{2-abs(\t/1.5)}
\pgfmathsetmacro{\m}{1 - \l}
\definecolor{currentcolor}{rgb}{\l,0,\m}
\draw<.(4)->[color=currentcolor] (-5,\t) -- (-0.4,\t);
\draw<.(4)->[color=currentcolor] (-5,-\t) -- (-0.4,-\t);
};
\fill<.(2)->[gray!25] (5.2,-3.1) rectangle (0.2,3.1);
\draw<.(2)->[ultra thick,red] (5,0) -- (0.4,0);
\draw<.(2)->[ultra thick] (2.7,-3) -- (2.7,3);
\foreach \t in {-2,-1.9,...,2} {
\pgfmathsetmacro{\l}{abs(\t/2)}
\pgfmathsetmacro{\m}{1 - \l}
\pgfmathsetmacro{\x}{2.3*cos(90*\t)};
\pgfmathsetmacro{\y}{2.3*sin(90*\t)};
\definecolor{currentcolor}{rgb}{\l,0,\m}
\draw<.(3)->[color=currentcolor] (2.7,0) -- +(\x,\y);
};

\end{tikzpicture}

\visible<2->{\(z \mapsto e^{z}\)}
\end{center}

\end{frame}
\end{document}

第一帧:

指数的第一帧

最后一帧:

指数的最后一帧

(如果您需要帮助解决特定情况,请编辑问题以包含代码或提出有关该问题的新问题。)

相关内容