Ich habe eine Vorlage bekommen, die das animate Paket verwendet. Ich habe das ganze auf folgendes Minimalbeispiel eingedampft:

Open in Online-Editor
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{ifthen}
\usepackage{animate}

\begin{document}
\newcounter{winkel}
\setcounter{winkel}{1}
\begin{animateinline}[loop, poster = first, controls, method=widget]{30}
  \whiledo{\value{winkel}<360}{
    \begin{tikzpicture}
      \draw[thick,->] (-3.2,0)--(3.2,0);
      \draw[thick,->] (0,-3.2)--(0,3.2);
      \draw[thin] (0,0) circle (2.5cm);
      \draw[ultra thick, red] (2.5,0) arc (0:\thewinkel:2.5) node at ($(5*\thewinkel/6:2.2)$) {$x$};
    \end{tikzpicture}
    \stepcounter{winkel}
    \ifnum\value{winkel}<360\newframe\fi
  }
\end{animateinline}
\end{document}

Wenn ich die Animation laufen lasse bzw. schrittweise durchgehe, "springt" das tikzpicture im letzten Schritt (der Kreis wird in x-Richtung gestaucht).

Wenn ich folgende Änderung mache, die ich syntaktisch für falsch halte, tritt das Problem nicht auf:

Open in Online-Editor
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{ifthen}
\usepackage{animate}

\begin{document}
\newcounter{winkel}
\setcounter{winkel}{1}
\begin{animateinline}[loop, poster = first, controls, method=widget]{30}
  \whiledo{\value{winkel}<360}{
    \begin{tikzpicture}
      \draw[thick,->] (-3.2,0)--(3.2,0);
      \draw[thick,->] (0,-3.2)--(0,3.2);
      \draw[thin] (0,0) circle (2.5cm);
      \draw[ultra thick, red] (2.5,0) arc (0:\thewinkel:2.5) node at ($(5*\thewinkel/6:2.2)$) {$x$};
    \end{tikzpicture}
    \stepcounter{winkel}
    \ifnum\value{winkel}<360\newframe\else\end{animateinline}\fi
  }
%\end{animateinline}
\end{document}

Hier wird die Umgebung animateinline geschlossen, bevor die while-Schleife geschlossen wird. Ich hab mich gewundert, dass dies überhaupt geht.

Warum springt das Bild in der ersten Variante und in der zweiten nicht?

(Die Animation lässt sich meines Wissens nach nur mit dem Adobe Reader mit aktiviertem JavaScript anschauen.)

gefragt 26 Mär '16, 15:52

tom75's gravatar image

tom75
2.2k187884
Akzeptiert-Rate: 57%


Ich hab jetzt nochmal in die Anleitung geschaut und eine bessere Lösung mit multiframe gefunden:

Open in Online-Editor
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{ifthen}
\usepackage{animate}

\begin{document}
\begin{animateinline}[loop, poster = first, controls, method=widget]{30}
  \multiframe{361}{iwinkel=0+1}{%
    \begin{tikzpicture}
      \draw[thick,->] (-3.2,0)--(3.2,0);
      \draw[thick,->] (0,-3.2)--(0,3.2);
      \draw[thin] (0,0) circle (2.5cm);
      \draw[ultra thick, red] (2.5,0) arc (0:\iwinkel:2.5) node at ($(5*\iwinkel/6:2.2)$) {$x$};
    \end{tikzpicture}
  }
\end{animateinline}
\end{document}
Permanenter link

beantwortet 26 Mär '16, 17:24

tom75's gravatar image

tom75
2.2k187884
Akzeptiert-Rate: 57%

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×728
×12

gestellte Frage: 26 Mär '16, 15:52

Frage wurde gesehen: 6,295 Mal

zuletzt geändert: 26 Mär '16, 17:24