我使用下面的代码绘制一个被椭圆包围的矩形,但是它不起作用。
\documentclass{beamer}
\usepackage{tikz}
\usepackage{animate}
\usepackage{fp}
% parameterized tikz graphics
\newcommand{\intersect}[1]{%
\def\setA{(0,0) circle (1)}%
\def\setc{(1,0) ellipse (1,2)}%
\def\setB{(#1,0) circle (1)}%
% define the bounding box
\def\boundb{(-2,2) rectangle (4,-2)}%
%
\begin{tikzpicture}
\draw \boundb;
% intersection
\begin{scope}
\clip \setc;
\end{scope}
\begin{scope}[even odd rule]% first circle without the second
\clip \setB \boundb;
\end{scope}
\draw \setc;
\end{tikzpicture}
}
\begin{document}
\begin{frame}
\begin{center}
\begin{animateinline}[autoplay,palindrome]{12}
%first frame, xb=0.0
\gdef\xb{0}% xb initial value
\intersect{\xb}%
%remaining frames, xb=0.1...2.1
\whiledo{\lengthtest{\xb pt < 2.1pt}}{%
\newframe
\FPeval{xb}{\xb+0.1}% new xb
\xdef\xb{\xb}% make \xb global
\intersect{\xb}%
}%
\end{animateinline}
\end{center}
\end{frame}
\end{document}
答案1
我不明白您到底想要做什么,但以下内容在 Adobe Reader 中运行没有任何问题。
\documentclass{beamer}
\usepackage{tikz}
\usepackage{animate}
\begin{document}
\begin{frame}{title}
\begin{animateinline}[autoplay,
palindrome,
begin={
\begin{tikzpicture}
\useasboundingbox (0,0) rectangle (5cm,4cm);
},
end={\end{tikzpicture}}
]{10}
\multiframe{20}{nstep=0.0+0.1}{%
\draw (0.5cm,0.5cm) rectangle (4.5cm,3.5);
\draw (2.5cm,2cm) circle (\nstep cm and 0.8*\nstep cm);
}
\end{animateinline}
\end{frame}
\end{document}
请注意,变量名称应以i,n,d
etc. 开头(请参阅animate
手册第 4 页)来反映变量的类型。