如何绘制旋转轴移动到其他坐标的旋转线(使用 tikz)?

如何绘制旋转轴移动到其他坐标的旋转线(使用 tikz)?

我正在尝试使用 tikz 生成动画。

动画应显示一个固定坐标系,位于当前页面上的任意位置 (x,y)。此外,还应动画一条旋转线,其旋转轴也位于位置 (x,y)。我写了以下代码

\documentclass{beamer}
\usepackage{tikz}
\usepackage{animate}
\usepackage{ifthen}

\begin{document}

   \begin{frame}
       \begin{tikzpicture}[remember picture, overlay, shift={(current page.center)}]
       %draw coordinate system at the center of current page
           \draw[thick, color=black, -latex] (-3,0) -- (3,0) node[right]{$x$};
           \draw[thick, color=black, -latex] (0,-3) -- (0,3) node[above]{$y$};
       \end{tikzpicture}

      \begin{animateinline}[poster=first,controls]{8}%
      % draw rotating line
         \multiframe{11}{rt=0+0.1,icount=1+1}{%
         \begin{tikzpicture}[scale=.75]
             \ifthenelse{\icount > 0}%
                 {\draw[thick, color=red!50] ({0},{0}) -- ({cos(\rt)*5}, {sin(\rt)*5});}{}
         \end{tikzpicture}%
         }
      \end{animateinline}
   \end{frame} 

\end{document}

动画没有达到我的期望。

  1. 如何将旋转轴移动到位置 (x,y)?

shift={(current page.center)}不知何故不适用animateinline

  1. 线没有按照我希望的方式旋转(从水平位置开始并逆时针旋转)?

我很感激任何帮助!

PS:有谁知道怎样保存前几帧所画的线,使得第一帧只有一条线,第二帧有第一帧的线加上新画的线,然后分别用于后续帧?

答案1

拥有两个环境(一个用于轴,一个用于旋转图)有什么特殊原因吗?

如果您在相同的内部绘制轴,tikzpicture则很容易获得所需的动画。

至于您的第二个问题,出现问题的原因在于动画过程中图像的大小发生了变化。您还使用了 0.1° 的步长,这个步长太小了,所以我增加了它。我在和处添加了两个“幻影节点”,(5,5)(-5,-5)获得不动的动画。

我还删除了你的\ifthenelse-condition,因为它没有任何效果,正如你写的那样。我还将缩放比例改为使用\resizebox(我在创建 gif 时遇到了一些麻烦scale=.75

代码:

\documentclass{beamer}
\usepackage{tikz}
\usepackage{animate}
\begin{document}
   \begin{frame}
      \begin{animateinline}[poster=first,controls]{8}
      % draw rotating line
         \multiframe{36}{rt=0+10}{%
         \resizebox{!}{.9\textheight}{\begin{tikzpicture}
                 \draw[thick, color=red!50] (0,0) -- ({cos(\rt)*5}, {sin(\rt)*5});
                 \draw[thick, color=black, -latex] (-3,0) -- (3,0) node[right]{$x$};
             \draw[thick, color=black, -latex] (0,-3) -- (0,3) node[above]{$y$};
             \node at (5,5) {};
             \node at (-5,-5) {};
         \end{tikzpicture}}%
         }
      \end{animateinline}
   \end{frame} 
\end{document}

结果:

在此处输入图片描述

相关内容