.cHAIN
19-02-2018, 08:31
Guten Morgen Community,
in Rahmen einer Studienarbeit animiere ich verschiedene dynamische Systeme.
Mein erstes System sind zwei einfache Wurfparabeln. Nun muss ich die zweite Wurfparabel begrenzen, weil diese sonst zu weit erscheint.
Nutzen wollte ich dazu den \ifthenelse Befehl. Jedoch bekomm ich immer wieder einen Fehler ausgeworfen. Ich habe schon viel verschiedenes Versucht.
Verzeiht mir mein Unwissen, ich bin noch Anfänger auf dem Gebiet.
\documentclass[8pt]{beamer}
\usepackage{sansmathaccent}
\pdfmapfile{+sansmathaccent.map}
% https://duckduckgo.com/?q=miktex+the+mathkerncmssi+could+not+be+found&t=ffab&ia=qa <https://duckduckgo.com/?q=miktex+the+mathkerncmssi+could+not+be+found&t=ffab&ia=qa>
\usepackage[ngerman]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{pgfplots,tikz,tikzscale,animate,ifthen }
\usetikzlibrary{backgrounds, shapes.geometric, arrows,snakes}
\pgfplotsset{compat=newest}
\tikzset{dashdot/.style={dash pattern=on .4pt off 3pt on 4pt off 3pt}}
\beamertemplatenavigationsymbolsempty
\begin{document}
%Position der Nockenwelle festlegen und verändern falls nötig
\def\nx{-2}
\def\ny{12}
\def\nxshift{-2cm}
\def\nyshift{12cm}
\begin{frame}{Aufgabe 12. Wurfparabel}
%Aufgabentext
Zwei Bälle werden unter unterschiedlichen Winkeln $\varphi$ und mit unterschiedlicher Anfangsgeschwindigkeit abgeworfen. Beide landen wie unten skizziert nach der Strecke L wieder auf dem Erdboden.
Die Anfangsgeschwindigkeit der Bälle wird beschrieben durch
\begin{tabbing}
$ v(\varphi)$\=$= \sqrt{\frac{L\cdot g}{2\cdot sin(\varphi)\cdot cos(\varphi)}} $ \quad \= für $0\leq\varphi\leq90^{\circ}$ \\
\end{tabbing}
Es ist die Anfangsgeschwindigkeit $v_{20}(\varphi) $ gesucht.
\quad geg.: $\varphi_{1}, \varphi_{2}$
\begin{animateinline} [controls]{40} %loop zum automatischen wiederholen
\multiframe{121}{Rx=0+0.01} { \scalebox{0.6} {
{\centering \begin{tikzpicture}
%Bounding Box 1
\draw [white] (-2.5,15cm) -- (-2.5,7.5cm); %Vertikal links
\draw [white] (-2.5,15cm) -- (5.5cm,15cm); %Horizontal oben
\draw [white] (-2.5,7.5cm) -- (5.5cm,7.5cm); %Horizontal unten
\draw [white] (5.5cm,15cm) -- (5.5cm, 7.5cm); %Vertikal rechts
%Berechnung der Parameter und festlegung der Variablen
\pgfmathparse{\Rx}
\let\t\pgfmathresult
%Ball 1 y-Richtung
\pgfmathparse{(-4.905)*\t*\t+(1/sqrt(2))*8.2867*\t} %t^2 mit t*t ersetzt
\let\h\pgfmathresult
%Ball 1 x-Richtung
\pgfmathparse{(1/sqrt(2))*8.2867*\t}
\let\s\pgfmathresult
%Ball 2 y-Richtung
\pgfmathparse{(-4.905)*\t*\t+0.5*8.9047*\t} %t^2 mit t*t ersetzt
\let\y\pgfmathresult
%Ball 2 x-Richtung
\pgfmathparse{(sqrt(3)/2)*8.9047*\t}
\let\x\pgfmathresult
% \def\position{(1/sqrt(2))*8.2867*\t}
% \def\hoehe{(-4.905)*\t*\t+(1/sqrt(2))*8.2867*\t} %t^2 mit t*t ersetzt
%Start Modellierung der Geometrie
%Zeichnung der Flugumgebung
%Grundlinie
\draw[line width=1.25] (\nx-0.02,\ny) -- (7.02+ \nx,\ny);
%Maßhilfslinien
\draw (\nx-0.02,\ny) -- (\nx-0.02,-0.6+ \ny); \draw (7.02+ \nx, \ny) -- (7.02+ \nx,-0.6+ \ny);
%Maßpfeil
\draw[<->] (\nx-0.02,-0.55+ \ny) -- (7.02+ \nx,-0.55+ \ny) node [midway, above] {L};
%Geschwindigkeitsvektoren
% \draw[->, line width=0.85pt] (\nx-0.02,\ny) -- (30:1.5) node (v20) at (1.75+ \nx,0.65+ \ny) {$v_{20}$};
% \draw[->, line width=0.85pt] (\nx-0.02,\ny) -- (45:1.5) node (v10) at (0.8+ \nx,1.2+ \ny) {$v_{10}$};
%Alle Linien wurden an Kurve 1 angepasst (bevor ich wusste, wie es richtig bei der Kurve funktioniert :D). Node wurde statt [midway, above] usw. auf manuelle Platzierung umgestellt
%Flugkurve für Phi=45° nach (h(s)=-(1/7)*s^2+s
\begin{axis} [width=10.05cm, height=3.725cm, axis line style={draw=none}, ytick=\empty, xtick=\empty, scale=1, yshift=-6.05+ \nyshift, xshift=-21+ \nxshift]
\addplot[mark=none, color=black] coordinates
{
(0,0)
(0.35,0.3325)
(0.70,0.6300)
(1.05,0.8925)
(1.4,1.12000)
(1.75,1.3125)
(2.1,1.47000)
(2.45,1.5925)
(2.8,1.68000)
(3.15,1.7325)
(3.5,1.75000)
(3.85,1.7325)
(4.2,1.68000)
(4.55,1.5925)
(4.9,1.47000)
(5.25,1.3125)
(5.6,1.12000)
(5.95,0.8925)
(6.30,0.6300)
(6.65,0.3325)
(7,0)
};
\end{axis}
%Flugkurve für Phi=30° nach h(s)=-(2180/26431)*s^2+(1/sqrt(3))*s
\begin{axis} [width=10.1cm, height=2.85cm, axis line style={draw=none}, ytick=\empty, xtick=\empty, scale=1, yshift=-4+ \nyshift, xshift=-22 + \nxshift]
\addplot[dashdot] coordinates
{
(0,0)
(0.35,0.19197)
(0.70,0.36373)
(1.05,0.51528)
(1.4,0.646630)
(1.75,0.75777)
(2.1,0.848700)
(2.45,0.91943)
(2.8,0.969950)
(3.15,1.00026)
(3.5,1.010360)
(3.85,1.00026)
(4.2,0.969950)
(4.55,0.91943)
(4.9,0.848700)
(5.25,0.75777)
(5.6,0.646630)
(5.95,0.51528)
(6.30,0.36373)
(6.65,0.19197)
(7,0)
};
\end{axis}
%Ball 1 zeichnen und bewegen
\fill[blue, draw=black] (\s+ \nx,\h+ \ny) circle (0.15);
%Ball 2 zeichnen, bewegen und begrenzen
\fill[green, draw=black] (\x+ \nx, \y+ \ny) circle (0.15);
\ifthenelse{\Rx<7}{\fill[green, draw=black] (\x+\nx,\y + \ny) circle (0.15)}{\fill[green] (\nx+7,\ny) circle (0.15)};
%Ende Modellierung Geometrie
%Start Ballposition (Diagramm)
\begin{axis}[
xlabel={\huge$t$},
ylabel={\huge$h$},
xtick=\empty,
ytick=\empty,
scale=1.3,
every axis x label/.style={ at={(ticklabel* cs:1.0)}, anchor=west},
every axis y label/.style={ at={(ticklabel* cs:1.0)}, anchor=south},
x axis line style={->},
y axis line style={->},
legend style={at={(2 cm,4 cm)}, anchor=north east},
at={(6.5 cm, 7.5 cm)},
axis x line*=middle,
axis y line*=left,
xmin=0, xmax=1.2,
ymin=0]
\addplot[line width=2pt, green, smooth] coordinates
{
(0,0)
(0.1,0.39619)
(0.2,0.69427)
(0.3,0.89426)
(0.4,0.99614)
(0.5,0.99993)
(0.6,0.90561)
(0.7,0.71319)
(0.8,0.42268)
(0.9,0.03407)
(0.9077166,0)
};
\addplot[line width=2pt, blue,smooth] coordinates
{
(0,0)
(0.05,0.28072)
(0.1,0.53691)
(0.2,0.97572)
(0.3,1.31642)
(0.4,1.55903)
(0.5,1.70354)
(0.55,1.73637)
(0.6,1.74995)
(0.65,1.73637)
(0.7,1.69826)
(0.8, 1.54847)
(0.9, 1.30057)
(1.0,0.95458)
(1.1,0.51049)
(1.15,0.25166)
(1.19,0.02693)
(1.19461402,0)
};
\end{axis}
% Ende Ballposition (Diagramm)
\end{tikzpicture}
}
}
}
\end{animateinline}
\end{frame}
\end{document}
Der Fehler befindet sich unter dem Kommentar "Ball 2 zeichnen, bewegen und begrenzen", über dem Diagramm-Kommentar.
Kommentiere ich den \ifthenelse Befehl aus wird ohne Probleme kompiliert. Ich kann mir nicht erklären, was ich in dem Befehl falsch eingetragen habe.
Vielen Dank für eure Hilfe!
Grüße,
Chris
in Rahmen einer Studienarbeit animiere ich verschiedene dynamische Systeme.
Mein erstes System sind zwei einfache Wurfparabeln. Nun muss ich die zweite Wurfparabel begrenzen, weil diese sonst zu weit erscheint.
Nutzen wollte ich dazu den \ifthenelse Befehl. Jedoch bekomm ich immer wieder einen Fehler ausgeworfen. Ich habe schon viel verschiedenes Versucht.
Verzeiht mir mein Unwissen, ich bin noch Anfänger auf dem Gebiet.
\documentclass[8pt]{beamer}
\usepackage{sansmathaccent}
\pdfmapfile{+sansmathaccent.map}
% https://duckduckgo.com/?q=miktex+the+mathkerncmssi+could+not+be+found&t=ffab&ia=qa <https://duckduckgo.com/?q=miktex+the+mathkerncmssi+could+not+be+found&t=ffab&ia=qa>
\usepackage[ngerman]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{pgfplots,tikz,tikzscale,animate,ifthen }
\usetikzlibrary{backgrounds, shapes.geometric, arrows,snakes}
\pgfplotsset{compat=newest}
\tikzset{dashdot/.style={dash pattern=on .4pt off 3pt on 4pt off 3pt}}
\beamertemplatenavigationsymbolsempty
\begin{document}
%Position der Nockenwelle festlegen und verändern falls nötig
\def\nx{-2}
\def\ny{12}
\def\nxshift{-2cm}
\def\nyshift{12cm}
\begin{frame}{Aufgabe 12. Wurfparabel}
%Aufgabentext
Zwei Bälle werden unter unterschiedlichen Winkeln $\varphi$ und mit unterschiedlicher Anfangsgeschwindigkeit abgeworfen. Beide landen wie unten skizziert nach der Strecke L wieder auf dem Erdboden.
Die Anfangsgeschwindigkeit der Bälle wird beschrieben durch
\begin{tabbing}
$ v(\varphi)$\=$= \sqrt{\frac{L\cdot g}{2\cdot sin(\varphi)\cdot cos(\varphi)}} $ \quad \= für $0\leq\varphi\leq90^{\circ}$ \\
\end{tabbing}
Es ist die Anfangsgeschwindigkeit $v_{20}(\varphi) $ gesucht.
\quad geg.: $\varphi_{1}, \varphi_{2}$
\begin{animateinline} [controls]{40} %loop zum automatischen wiederholen
\multiframe{121}{Rx=0+0.01} { \scalebox{0.6} {
{\centering \begin{tikzpicture}
%Bounding Box 1
\draw [white] (-2.5,15cm) -- (-2.5,7.5cm); %Vertikal links
\draw [white] (-2.5,15cm) -- (5.5cm,15cm); %Horizontal oben
\draw [white] (-2.5,7.5cm) -- (5.5cm,7.5cm); %Horizontal unten
\draw [white] (5.5cm,15cm) -- (5.5cm, 7.5cm); %Vertikal rechts
%Berechnung der Parameter und festlegung der Variablen
\pgfmathparse{\Rx}
\let\t\pgfmathresult
%Ball 1 y-Richtung
\pgfmathparse{(-4.905)*\t*\t+(1/sqrt(2))*8.2867*\t} %t^2 mit t*t ersetzt
\let\h\pgfmathresult
%Ball 1 x-Richtung
\pgfmathparse{(1/sqrt(2))*8.2867*\t}
\let\s\pgfmathresult
%Ball 2 y-Richtung
\pgfmathparse{(-4.905)*\t*\t+0.5*8.9047*\t} %t^2 mit t*t ersetzt
\let\y\pgfmathresult
%Ball 2 x-Richtung
\pgfmathparse{(sqrt(3)/2)*8.9047*\t}
\let\x\pgfmathresult
% \def\position{(1/sqrt(2))*8.2867*\t}
% \def\hoehe{(-4.905)*\t*\t+(1/sqrt(2))*8.2867*\t} %t^2 mit t*t ersetzt
%Start Modellierung der Geometrie
%Zeichnung der Flugumgebung
%Grundlinie
\draw[line width=1.25] (\nx-0.02,\ny) -- (7.02+ \nx,\ny);
%Maßhilfslinien
\draw (\nx-0.02,\ny) -- (\nx-0.02,-0.6+ \ny); \draw (7.02+ \nx, \ny) -- (7.02+ \nx,-0.6+ \ny);
%Maßpfeil
\draw[<->] (\nx-0.02,-0.55+ \ny) -- (7.02+ \nx,-0.55+ \ny) node [midway, above] {L};
%Geschwindigkeitsvektoren
% \draw[->, line width=0.85pt] (\nx-0.02,\ny) -- (30:1.5) node (v20) at (1.75+ \nx,0.65+ \ny) {$v_{20}$};
% \draw[->, line width=0.85pt] (\nx-0.02,\ny) -- (45:1.5) node (v10) at (0.8+ \nx,1.2+ \ny) {$v_{10}$};
%Alle Linien wurden an Kurve 1 angepasst (bevor ich wusste, wie es richtig bei der Kurve funktioniert :D). Node wurde statt [midway, above] usw. auf manuelle Platzierung umgestellt
%Flugkurve für Phi=45° nach (h(s)=-(1/7)*s^2+s
\begin{axis} [width=10.05cm, height=3.725cm, axis line style={draw=none}, ytick=\empty, xtick=\empty, scale=1, yshift=-6.05+ \nyshift, xshift=-21+ \nxshift]
\addplot[mark=none, color=black] coordinates
{
(0,0)
(0.35,0.3325)
(0.70,0.6300)
(1.05,0.8925)
(1.4,1.12000)
(1.75,1.3125)
(2.1,1.47000)
(2.45,1.5925)
(2.8,1.68000)
(3.15,1.7325)
(3.5,1.75000)
(3.85,1.7325)
(4.2,1.68000)
(4.55,1.5925)
(4.9,1.47000)
(5.25,1.3125)
(5.6,1.12000)
(5.95,0.8925)
(6.30,0.6300)
(6.65,0.3325)
(7,0)
};
\end{axis}
%Flugkurve für Phi=30° nach h(s)=-(2180/26431)*s^2+(1/sqrt(3))*s
\begin{axis} [width=10.1cm, height=2.85cm, axis line style={draw=none}, ytick=\empty, xtick=\empty, scale=1, yshift=-4+ \nyshift, xshift=-22 + \nxshift]
\addplot[dashdot] coordinates
{
(0,0)
(0.35,0.19197)
(0.70,0.36373)
(1.05,0.51528)
(1.4,0.646630)
(1.75,0.75777)
(2.1,0.848700)
(2.45,0.91943)
(2.8,0.969950)
(3.15,1.00026)
(3.5,1.010360)
(3.85,1.00026)
(4.2,0.969950)
(4.55,0.91943)
(4.9,0.848700)
(5.25,0.75777)
(5.6,0.646630)
(5.95,0.51528)
(6.30,0.36373)
(6.65,0.19197)
(7,0)
};
\end{axis}
%Ball 1 zeichnen und bewegen
\fill[blue, draw=black] (\s+ \nx,\h+ \ny) circle (0.15);
%Ball 2 zeichnen, bewegen und begrenzen
\fill[green, draw=black] (\x+ \nx, \y+ \ny) circle (0.15);
\ifthenelse{\Rx<7}{\fill[green, draw=black] (\x+\nx,\y + \ny) circle (0.15)}{\fill[green] (\nx+7,\ny) circle (0.15)};
%Ende Modellierung Geometrie
%Start Ballposition (Diagramm)
\begin{axis}[
xlabel={\huge$t$},
ylabel={\huge$h$},
xtick=\empty,
ytick=\empty,
scale=1.3,
every axis x label/.style={ at={(ticklabel* cs:1.0)}, anchor=west},
every axis y label/.style={ at={(ticklabel* cs:1.0)}, anchor=south},
x axis line style={->},
y axis line style={->},
legend style={at={(2 cm,4 cm)}, anchor=north east},
at={(6.5 cm, 7.5 cm)},
axis x line*=middle,
axis y line*=left,
xmin=0, xmax=1.2,
ymin=0]
\addplot[line width=2pt, green, smooth] coordinates
{
(0,0)
(0.1,0.39619)
(0.2,0.69427)
(0.3,0.89426)
(0.4,0.99614)
(0.5,0.99993)
(0.6,0.90561)
(0.7,0.71319)
(0.8,0.42268)
(0.9,0.03407)
(0.9077166,0)
};
\addplot[line width=2pt, blue,smooth] coordinates
{
(0,0)
(0.05,0.28072)
(0.1,0.53691)
(0.2,0.97572)
(0.3,1.31642)
(0.4,1.55903)
(0.5,1.70354)
(0.55,1.73637)
(0.6,1.74995)
(0.65,1.73637)
(0.7,1.69826)
(0.8, 1.54847)
(0.9, 1.30057)
(1.0,0.95458)
(1.1,0.51049)
(1.15,0.25166)
(1.19,0.02693)
(1.19461402,0)
};
\end{axis}
% Ende Ballposition (Diagramm)
\end{tikzpicture}
}
}
}
\end{animateinline}
\end{frame}
\end{document}
Der Fehler befindet sich unter dem Kommentar "Ball 2 zeichnen, bewegen und begrenzen", über dem Diagramm-Kommentar.
Kommentiere ich den \ifthenelse Befehl aus wird ohne Probleme kompiliert. Ich kann mir nicht erklären, was ich in dem Befehl falsch eingetragen habe.
Vielen Dank für eure Hilfe!
Grüße,
Chris