Enhance documentation
This commit is contained in:
parent
d30d0c24b7
commit
270216531a
@ -21,6 +21,7 @@
|
|||||||
|
|
||||||
% Für mathematische Befehle und Symbole
|
% Für mathematische Befehle und Symbole
|
||||||
\usepackage{amsmath,amsthm,amssymb}
|
\usepackage{amsmath,amsthm,amssymb}
|
||||||
|
\usepackage{gensymb}
|
||||||
|
|
||||||
% Für Bilder
|
% Für Bilder
|
||||||
\usepackage{graphicx,subcaption,float}
|
\usepackage{graphicx,subcaption,float}
|
||||||
@ -109,7 +110,7 @@ Zunächst kann man feststellen, dass der letzte Abschnitt jeder Route zum Bus im
|
|||||||
\tkzLabelPoints(B,L)
|
\tkzLabelPoints(B,L)
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
\caption{Ein Treffpunkt}
|
\caption{Ein Treffpunkt}
|
||||||
\label{abb:fall1}
|
\label{abb:fall2}
|
||||||
\end{subfigure}%
|
\end{subfigure}%
|
||||||
\begin{subfigure}{.33\textwidth}
|
\begin{subfigure}{.33\textwidth}
|
||||||
\centering
|
\centering
|
||||||
@ -125,7 +126,7 @@ Zunächst kann man feststellen, dass der letzte Abschnitt jeder Route zum Bus im
|
|||||||
\tkzLabelPoints(B,L)
|
\tkzLabelPoints(B,L)
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
\caption{Kein Treffpunkt}
|
\caption{Kein Treffpunkt}
|
||||||
\label{abb:fall1}
|
\label{abb:fall3}
|
||||||
\end{subfigure}
|
\end{subfigure}
|
||||||
\caption{Mögliche Treffpunktanzahlen}
|
\caption{Mögliche Treffpunktanzahlen}
|
||||||
\label{fig:treffpunkte}
|
\label{fig:treffpunkte}
|
||||||
@ -147,7 +148,80 @@ Zunächst kann man feststellen, dass der letzte Abschnitt jeder Route zum Bus im
|
|||||||
|
|
||||||
Um den letzten Zeitpunkt, bei dem sie den Bus gerade noch erwischt, zu bestimmen, kann man die Wurzel in der letzen Gleichung gleich Null setzen. Wenn man nach $y_{B}$ auflöst, erhält man die Position des Busses, bei dessen Durchquerung Lisa anfangen sollte zu laufen. So kann man für jeden Startpunkt berechnen, wann Lisa spätestens von dort loslaufen müsste.
|
Um den letzten Zeitpunkt, bei dem sie den Bus gerade noch erwischt, zu bestimmen, kann man die Wurzel in der letzen Gleichung gleich Null setzen. Wenn man nach $y_{B}$ auflöst, erhält man die Position des Busses, bei dessen Durchquerung Lisa anfangen sollte zu laufen. So kann man für jeden Startpunkt berechnen, wann Lisa spätestens von dort loslaufen müsste.
|
||||||
|
|
||||||
Außerdem wird Lisa auf einer optimalen Route vor dem letzten Abschnitt immer von einer Polygonecke zur nächsten gehen. Andernfalls würde sie in Kurven um jene Ecken wertvolle Zeit verschwenden.
|
Außerdem wird Lisa auf einer optimalen Route vor dem letzten Abschnitt immer von einer Polygonecke zur nächsten gehen. Andernfalls würde sie in Kurven um jene Ecken wertvolle Zeit verschwenden. Der letzte Abschnitt ihrer Route trifft die y-Achse immer in einem 60\degree-Winkel ($cos(60\degree) = \frac{1}{2}$):
|
||||||
|
|
||||||
|
\begin{figure}[H]
|
||||||
|
\centering
|
||||||
|
\begin{subfigure}{.33\textwidth}
|
||||||
|
\centering
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\tkzInit[xmax=3.5,ymax=7.5]
|
||||||
|
\tkzAxeXY
|
||||||
|
\tkzGrid
|
||||||
|
\tkzDefPoint(0,0.3){B}
|
||||||
|
\tkzDefPoint(2,4){L}
|
||||||
|
\tkzDefPoint(0,4.36667){M}
|
||||||
|
|
||||||
|
\tkzDrawSegment(L,M)
|
||||||
|
\tkzDrawSegment(B,M)
|
||||||
|
\tkzDrawPoints(B,L,M)
|
||||||
|
\tkzMarkAngle[fill=orange,size=0.8cm,opacity=.4](B,M,L)
|
||||||
|
\tkzLabelAngle[pos=0.5](B,M,L){$\alpha$}
|
||||||
|
|
||||||
|
\tkzLabelPoints[yshift=14pt](M)
|
||||||
|
\tkzLabelPoints(B,L)
|
||||||
|
\end{tikzpicture}
|
||||||
|
\caption{$\alpha > 60\degree$}
|
||||||
|
\label{abb:winkel1}
|
||||||
|
\end{subfigure}%
|
||||||
|
\begin{subfigure}{.33\textwidth}
|
||||||
|
\centering
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\tkzInit[xmax=3.5,ymax=7.5]
|
||||||
|
\tkzAxeXY
|
||||||
|
\tkzGrid
|
||||||
|
\tkzDefPoint(0,0.5359){B}
|
||||||
|
\tkzDefPoint(2,4){L}
|
||||||
|
\tkzDefPoint(0,5.155){M}
|
||||||
|
|
||||||
|
\tkzDrawTriangle[school](B,L)
|
||||||
|
\tkzDrawSegment(L,M)
|
||||||
|
\tkzDrawPoints(B,L,M)
|
||||||
|
\tkzMarkAngle[fill=orange,size=0.8cm,opacity=.4](B,M,L)
|
||||||
|
\tkzLabelAngle[pos=0.5](B,M,L){$\alpha$}
|
||||||
|
\tkzMarkRightAngle(M,L,B)
|
||||||
|
|
||||||
|
\tkzLabelPoints[yshift=14pt](M)
|
||||||
|
\tkzLabelPoints(B,L)
|
||||||
|
\end{tikzpicture}
|
||||||
|
\caption{$\alpha = 60\degree$}
|
||||||
|
\label{abb:winkel2}
|
||||||
|
\end{subfigure}%
|
||||||
|
\begin{subfigure}{.33\textwidth}
|
||||||
|
\centering
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\tkzInit[xmax=3.5,ymax=7.5]
|
||||||
|
\tkzAxeXY
|
||||||
|
\tkzGrid
|
||||||
|
\tkzDefPoint(0,0.3){B}
|
||||||
|
\tkzDefPoint(2,4){L}
|
||||||
|
\tkzDefPoint(0,6.1){M}
|
||||||
|
|
||||||
|
\tkzDrawSegment(L,M)
|
||||||
|
\tkzDrawSegment(B,M)
|
||||||
|
\tkzDrawPoints(B,L,M)
|
||||||
|
\tkzMarkAngle[fill=orange,size=0.8cm,opacity=.4](B,M,L)
|
||||||
|
\tkzLabelAngle[pos=0.5](B,M,L){$\alpha$}
|
||||||
|
|
||||||
|
\tkzLabelPoints[yshift=14pt](M)
|
||||||
|
\tkzLabelPoints(B,L)
|
||||||
|
\end{tikzpicture}
|
||||||
|
\caption{$\alpha < 60\degree$}
|
||||||
|
\label{abb:winkel3}
|
||||||
|
\end{subfigure}
|
||||||
|
\caption{Mögliche Winkel}
|
||||||
|
\label{fig:winkel}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
\section{Umsetzung}
|
\section{Umsetzung}
|
||||||
Das Programm durchsucht in einer Breitensuche alle Wege, die über Polygonecken führen. Priorisiert werden jene Wege, bei denen Lisa theoretisch am längsten warten könnte. Um die Wege abzuschließen, probiert das Programm verschiedene Treffpunkte mit dem Bus durch (je einen pro Meter y-Achse). Derjenige, bei dem Lisa sich am meisten Zeit lassen kann, wird gespeichert, falls nicht schon eine bessere Lösung gefunden wurde.
|
Das Programm durchsucht in einer Breitensuche alle Wege, die über Polygonecken führen. Priorisiert werden jene Wege, bei denen Lisa theoretisch am längsten warten könnte. Um die Wege abzuschließen, probiert das Programm verschiedene Treffpunkte mit dem Bus durch (je einen pro Meter y-Achse). Derjenige, bei dem Lisa sich am meisten Zeit lassen kann, wird gespeichert, falls nicht schon eine bessere Lösung gefunden wurde.
|
||||||
|
Loading…
Reference in New Issue
Block a user