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 '16, 19:22 Wienie2401 saputello |
Für den Zweck parametrierter Animationsframes bietet das Open in Online-Editor
\multiframe{<anzahl>}{<parameterdefinitionen>}{<schleifenkörper>} . (Siehe Dokumentation.)
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} } beantwortet 11 Mai '16, 09:37 AlexG |
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.
Ich vermute stark, dass Du
\arabic
statt\value
brauchst.Danke saputello für die Anmerkung, werde es in Zukunft beherzigen =)
@Clemens: Genau dein Vorschlag hat das Problem gelöst! Danke =)