컨트롤 정렬 및 컨트롤이 tikz에서 작동하지 않습니다.

컨트롤 정렬 및 컨트롤이 tikz에서 작동하지 않습니다.

컨트롤러의 버튼 controlsaligned만 사용하고 표시하려고 합니다 . play,stop,step여기에 내가 사용하는 코드가 있습니다.

 \documentclass[12pt]{article}
    \usepackage{tikz}
    \usepackage[utf8]{inputenc}
    \usepackage{xcolor}
    \definecolor{lava}{rgb}{0.81, 0.06, 0.13}
    \definecolor{myblue}{rgb}{0.0, 0.30, 0.60}
    \usepackage{gensymb}
    \usetikzlibrary{shapes}
    \usepgflibrary{shapes.symbols}
    \usetikzlibrary{mindmap,trees,arrows,shapes.symbols,shapes.misc}
    \usepackage[ampersand]{easylist}
    \usepackage{lmodern}  
    \pagestyle{empty}
    \usetikzlibrary{decorations.markings}
    \usepackage{ifthen}
\usepackage{animate}  
   \newcounter{angle}
\setcounter{angle}{0}
\begin{document}
\begin{center}
  \begin{animateinline}[loop, poster = first,controls={[play,stop,speed]},controlsaligned=right+-4em]
\whiledo{\theangle<359}{
\vspace{-1em}
    \begin{tikzpicture}[scale=0.9]    
    % Axis
    \draw[thick,->,black] (-3,0)--(3,0) node[below] {$\Re$}; % x axis
    \draw[thick,->,black] (0,-3)--(0,3) node[left] {$\Im$}; % y axis
    \draw[black,thick] (0,0) circle (2.5cm);
    \node[black,below] at (2.6,0) {$V_m$};
    \node[black,above] at (0.1,-2.5) {$V_m$};
    %
    \draw[ultra thick,lava] (0,0) -- (0,0 |- \theangle:2.5cm); % UpOn x axis
    \draw[ultra thick,myblue] (0,0) -- (\theangle:2.5cm |- 0,0); % UpOn y axis
    %
    \draw[densely dotted,lava] (\theangle:2.5cm) -- (\theangle:2.5cm |- 0,0); % vertical line
    \draw[densely dotted,myblue] (\theangle:2.5cm) -- (0,0 |- \theangle:2.5cm); % horizontal line
    \draw[ultra thick,black,->,rotate=\theangle] (0,0) -- (2.5,0); 
    \node[red,myblue,right] at (0,-3.1) 
            {\footnotesize$\cos(\theangle^{\degree}) = \pgfmathcos{\theangle}\pgfmathresult$};
    \node[lava,lava,right] at (0,-3.5) 
            {\footnotesize$\sin(\theangle^{\degree}) = \pgfmathsin{\theangle}\pgfmathresult$};
    \end{tikzpicture}
    %
    \stepcounter{angle}
    \ifthenelse{\theangle<359}{
            \newframe
    }{
    
            \end{animateinline}
    }
}
\end{center}
\end{document}

오류는 다음과 같습니다

​! 숫자가 누락되어 0으로 처리됩니다.

답변1

코드에 몇 가지 구문 오류가 있습니다. []주변이 play,stop,speed잘못되었으며 환경에 프레임 속도 인수가 없습니다 animateinline.

또한 코드는 \whiledo더 이상 사용되지 않는 매개변수화된 프레임 주위에 루프를 사용합니다. 대신 사용하세요 \multiframe.

실행 중인 애니메이션이 흔들리는 것을 방지하기 위해 보이지 않는 노드를 에 배치하여 tikzpicture오른쪽 경계 상자 가장자리를 약간 밀어냅니다. 이렇게 하면 모든 프레임의 크기가 동일해집니다.

음수 크기를 사용하면 controlsaligned컨트롤이 애니메이션 위젯 외부로 돌출됩니다. 이것이 당신의 의도인지 확실하지 않습니다. (아래 코드에서는 제거했습니다.)

\documentclass[12pt]{article}

\usepackage{tikz}
\usepackage[utf8]{inputenc} 
\usepackage[T1]{fontenc}  
\usepackage{lmodern}  
\definecolor{lava}{rgb}{0.81, 0.06, 0.13}
\definecolor{myblue}{rgb}{0.0, 0.30, 0.60}
\usepackage{gensymb}
\pagestyle{empty}
\usepackage{animate}   
    
\begin{document}
\begin{center}
\begin{animateinline}[loop, poster = first,controls={play,stop,speed},controlsaligned=right]{30}
  \multiframe{360}{iAngle=0+1}{
    \begin{tikzpicture}[scale=0.9]
    \node at (3.9,0) {}; % push right bounding box border somewhat 
    % Axis
    \draw[thick,->] (-3,0) -- (3,0) node[right] {$\Re$}; % x axis
    \draw[thick,->] (0,-3)--(0,3) node[left] {$\Im$}; % y axis
    \draw[black,thick] (0,0) circle (2.5cm);
    \node[black,below] at (2.6,0) {$V_m$};
    \node[black,above] at (0.1,-2.5) {$V_m$};
    %
    \draw[ultra thick,lava] (0,0) -- (0,0 |- \iAngle:2.5cm); % UpOn x axis
    \draw[ultra thick,myblue] (0,0) -- (\iAngle:2.5cm |- 0,0); % UpOn y axis
    %
    \draw[densely dotted,lava] (\iAngle:2.5cm) -- (\iAngle:2.5cm |- 0,0); % vertical line
    \draw[densely dotted,myblue] (\iAngle:2.5cm) -- (0,0 |- \iAngle:2.5cm); % horizontal line
    \draw[ultra thick,black,->,rotate=\iAngle] (0,0) -- (2.5,0);
    \node[red,myblue,right] at (0,-3.1)
            {\footnotesize$\cos(\iAngle^{\degree}) = \pgfmathcos{\iAngle}\pgfmathresult$};
    \node[lava,lava,right] at (0,-3.5)
            {\footnotesize$\sin(\iAngle^{\degree}) = \pgfmathsin{\iAngle}\pgfmathresult$};
    \end{tikzpicture}
  }
\end{animateinline}
\end{center}
\end{document}

관련 정보