![为 pgfplots 3d 图制作动画](https://linux22.com/image/318549/%E4%B8%BA%20pgfplots%203d%20%E5%9B%BE%E5%88%B6%E4%BD%9C%E5%8A%A8%E7%94%BB.png)
答案1
\foreach
是的,这里有一个使用循环的选项;可以使用环境选项(或类似选项之一)来\only
改变角度:view
axis
\documentclass{beamer}
\usepackage{pgfplots}
\begin{document}
\begin{frame}
\centering
\begin{tikzpicture}
\foreach \Angle [count=\ti] in {30,60,120,150,210,240,300,330}
{
\only<\ti>{\begin{axis}[
view={\Angle}{30}]
\addplot3[surf,domain=0:360, samples=40]
{sin(x)*sin(y)};
\end{axis}}
}
\end{tikzpicture}
\end{frame}
\end{document}
使用 ImageMagick 和类似的东西
convert -verbose -delay 120 -loop 0 -density 300 a.pdf a.gif
你可以得到一个动画:
您还可以使用animate
包直接制作动画,但如果我没记错的话,这只适用于 Adobe Reader。
答案2
这是使用动画包:
\documentclass{beamer}
\usepackage{pgfplots}
\usepackage{animate}
\begin{document}
\begin{frame}
\begin{animateinline}[poster=last, controls, palindrome]{12}%
\multiframe{29}{iAngle=80+10}{%
%iAngle = 80, 90, ..., 360 degrees
\begin{tikzpicture}
\begin{axis}[view={\iAngle}{30}]
\addplot3[surf,domain=0:360, samples=40]
{sin(x)*sin(y)};
\end{axis}
\end{tikzpicture}
}%
\end{animateinline}%
\end{frame}
\end{document}