Hallo zusammen,

ich verzweifel gerade an einer Animation für meine Präsentation. Diese baue ich natürlich mit dem Beamer-Paket von LaTeX und der Quellcode sieht wie folgt aus:

Open in Online-Editor
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{intersections,angles,quotes,calc,through,babel}
\usepackage{animate}
\usepackage{ifthen}

\newcommand{\Gerade}[1]{%
\gdef\setA{#1}
\begin{tikzpicture}
        \clip (-5,-1)rectangle(5,5);
        \coordinate (A) at (0,0);
        \coordinate (B) at (2,0);
        \coordinate (C) at (0,3);
        \node[anchor=south] at (C){C};
        \fill(C) circle (1.5pt);
        \draw(C) circle (3pt);
        \draw ($(A)!-10cm!(B)$)--($(A)!+10cm!(B)$);
        \coordinate (D) at ($(C)+(\setA:1)$);
        \draw ($(C)!-10cm!(D)$)--($(C)!+10cm!(D)$);
        \coordinate (SP) at (intersection of C--D and A--B);
        \fill[red] (SP) circle (1.2pt);
\end{tikzpicture}
}

\newcounter{Winkel}
\setcounter{Winkel}{36}

\begin{document}
\frame{\frametitle{Wandernder Schnittpunkt}
    \begin{animateinline}[autoplay,palindrome]{12}
    \Gerade{35}
    \whiledo{\value{Winkel} < 125}{
       \newframe
       \Gerade{\value{Winkel}}
       \stepcounter {Winkel}}
    \end{animateinline}
}
\end{document}

Nun soll der Code eine Animation erzeugen, wo sich die obere Gerade C--D um Punkt C dreht und der Schnittpunkt mit der unteren Gerade jeweils auf dieser als roter Punkt wandert.

Leider komme ich irgendwie nicht zum Ziel.

Kann ich den Counter bzw. seinen Wert nicht in tikz-Umgebungen benutzen? Ich weiß mir leider keinen Rat und hoffe, dass wer von euch eine zündende Idee hat! Das wäre genial!

Vielen Dank schon mal im Voraus für eure Hilfe =)

gefragt 10 Mai, 13:22

Wienie2401's gravatar image

Wienie2401
654
Akzeptiert: 100%

bearbeitet 10 Mai, 14:10

saputello's gravatar image

saputello
18.4k22352

1

Bitte Markdown statt HTML verwenden. Nur dann gibt es für Blockcode auch den Online-Editor-Link. Blockcode geht ganz einfach durch Auswählen des Codes und entweder Strg-k drücken oder den Code-Knopf in der Toolbar.

(10 Mai, 14:12) saputello
1

Ich vermute stark, dass Du \arabic statt \value brauchst.

(10 Mai, 14:43) Clemens

Danke saputello für die Anmerkung, werde es in Zukunft beherzigen =)

@Clemens: Genau dein Vorschlag hat das Problem gelöst! Danke =)

(10 Mai, 15:14) Wienie2401

Für den Zweck parametrierter Animationsframes bietet das animate-Paket den Befehl

Open in Online-Editor
\multiframe{<anzahl>}{<parameterdefinitionen>}{<schleifenkörper>} .

(Siehe Dokumentation.)

whiledo-Schleifen sollten hier grundsätzlich nicht verwendet werden.

Open in Online-Editor
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{intersections,angles,quotes,calc,through,babel}
\usepackage{animate}

\newcommand{\Gerade}[1]{%
  \begin{tikzpicture}
    \clip (-5,-1)rectangle(5,5);
    \coordinate (A) at (0,0);
    \coordinate (B) at (2,0);
    \coordinate (C) at (0,3);
    \node[anchor=south] at (C){C};
    \fill(C) circle (1.5pt);
    \draw(C) circle (3pt);
    \draw ($(A)!-10cm!(B)$)--($(A)!+10cm!(B)$);
    \coordinate (D) at ($(C)+(#1:1)$);
    \draw ($(C)!-10cm!(D)$)--($(C)!+10cm!(D)$);
    \coordinate (SP) at (intersection of C--D and A--B);
    \fill[red] (SP) circle (1.2pt);
  \end{tikzpicture}%
}

\begin{document}
\begin{frame}{Wandernder Schnittpunkt}
  \begin{animateinline}[autoplay,palindrome]{12}
    \multiframe{91}{iWinkel=35+1}{ % iWinkel=(35,36,...,125)°
      \Gerade{\iWinkel}
    }
  \end{animateinline}
\end{frame}
\end{document}

Für nicht-ganzzahliges Inkrementieren muss der Winkel-Parameter wie folgt definiert werden:

Open in Online-Editor
\multiframe{181}{rWinkel=35+0.5}{ % rWinkel=(35,35.5,36,...,125)°
  \Gerade{\rWinkel}
}
Permanenter link

beantwortet 11 Mai, 03:37

AlexG's gravatar image

AlexG
963

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
×94
×2
×2
×1

Frage gestellt: 10 Mai, 13:22

Frage wurde angeschaut: 730 Mal

Zuletzt aktualisiert: 11 Mai, 03:37