如何通过动画放大图形

如何通过动画放大图形

客观的:首先,我将一张图片(名为test.png)放在一个圆圈(由 制作TikZ)中。然后,我想通过控制选项 的值来获得一个动画效果,以放大整个图形scale

但最终的排版并未显示放大的图形。

代码:

\documentclass{article}
\usepackage{animate,calc,tikz,graphicx}

\newcounter{animate}
\newcommand\test[1]{
  \setcounter{animate}{10 * \real{#1}}
  \begin{animateinline}[autoplay]{12}
    \multiframe{\theanimate}{Rscale=0.1+0.1}{
      \begin{tikzpicture}[transform shape]
        \path
        [path picture={\node at (0,0)
           {\includegraphics[width=2.1cm]{test.png}};},
         draw=orange,thick,scale=\Rscale,
        ] 
        (0,0) circle (1cm);
      \end{tikzpicture}
    }
  \end{animateinline}
}

\begin{document}
\test{3.55}
\end{document}

在此处输入图片描述

答案1

据我所知,\multiframeframes 值不能是实数,它必须是一个整数。而且你的动画图形需要一些空间来让图片变大。所以你需要为图片设置足够大小的空白背景(考虑图片的最终大小)。我为背景绘制框架只是为了显示效果。以下是一个工作示例。

\documentclass{article}
\usepackage[margin=2cm,showframe]{geometry}
\usepackage{lipsum}
\usepackage{animate,calc,tikz,graphicx}

\newcounter{animate}
\newcommand\test[1]{%
\par{\noindent\centering\setcounter{animate}{10 * #1}%
\begin{animateinline}[poster=last,autoplay,loop]{20}
    \multiframe{\theanimate}{Rscale=0.1+0.1}{
      \begin{tikzpicture}
        \path [draw] (-4,-4) rectangle (4,4);
        \node[circle,draw=orange,thick,scale=\Rscale] at (0,0){\includegraphics[width=1cm]{test.png}};
      \end{tikzpicture}
    }
\end{animateinline}\par}
}

\begin{document}
\lipsum[1]
\test{4}
\lipsum[2]
\end{document}

在此处输入图片描述 在此处输入图片描述

答案2

不清楚您想如何更改图像大小。只是固定圆形大小的图像?

\documentclass{article}
\usepackage{tikz}
\usepackage{animate}

\begin{document}
    \begin{animateinline}[poster=first, controls, autoplay,
                          ]{10}
\multiframe{12}{Rscale=1+1}%
{
\begin{tikzpicture}
    \path[path picture={\node at (0,0)
           {\includegraphics[scale=\Rscale]{example-image-duck}};},
          draw=orange,thick,
         ]  (0,0) circle (22mm);
\end{tikzpicture}
}
  \end{animateinline}
\end{document} 

在此处输入图片描述 在此处输入图片描述 在此处输入图片描述

相关内容