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, 10:52

tom75's gravatar image

tom75
1.9k1545
Akzeptiert: 83%


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, 12:24

tom75's gravatar image

tom75
1.9k1545

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

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üge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×492
×5

Frage gestellt: 26 Mär, 10:52

Frage wurde angeschaut: 693 Mal

Zuletzt aktualisiert: 26 Mär, 12:24