Controlsaligned und Kontrollen funktionieren nicht in Tikz

Controlsaligned und Kontrollen funktionieren nicht in Tikz

Ich versuche, controlsalignednur die play,stop,stepSchaltflächen in Controllern zu verwenden und anzuzeigen. Hier ist der Code, den ich verwende

 \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}

Der Fehler ist

​! Fehlende Zahl, wird als Null behandelt.

Antwort1

Der Code enthält einige syntaktische Fehler: Das „ [und ]drumherum“ play,stop,speedist falsch und das Framerate-Argument fehlt in der animateinlineUmgebung.

Außerdem verwendet der Code eine \whiledoSchleife um parametrisierte Frames, was eine veraltete Vorgehensweise ist. Verwenden Sie \multiframestattdessen.

Um zu verhindern, dass die laufende Animation wackelt, wird ein unsichtbarer Knoten in die Animation eingefügt, tikzpictureder die rechte Begrenzungsrahmenkante etwas verschiebt. Dadurch wird sichergestellt, dass alle Frames die gleiche Größe haben.

Beachten Sie, dass bei Verwendung negativer Abmessungen controlsaligneddie Steuerelemente über das Animations-Widget hinausragen. Ich bin mir nicht sicher, ob das Ihre Absicht ist. (Ich habe es im folgenden Code entfernt.)

\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}

verwandte Informationen