
Ich versuche, controlsaligned
nur die play,stop,step
Schaltflä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,speed
ist falsch und das Framerate-Argument fehlt in der animateinline
Umgebung.
Außerdem verwendet der Code eine \whiledo
Schleife um parametrisierte Frames, was eine veraltete Vorgehensweise ist. Verwenden Sie \multiframe
stattdessen.
Um zu verhindern, dass die laufende Animation wackelt, wird ein unsichtbarer Knoten in die Animation eingefügt, tikzpicture
der die rechte Begrenzungsrahmenkante etwas verschiebt. Dadurch wird sichergestellt, dass alle Frames die gleiche Größe haben.
Beachten Sie, dass bei Verwendung negativer Abmessungen controlsaligned
die 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}