added logo, reviewd handout

master
Martin Scheidt 2020-09-30 20:01:11 +02:00
parent a55cdde531
commit d77d796653
65 changed files with 2361 additions and 819 deletions

View File

@ -1,11 +1,17 @@
edugame-railway-operation
======
Version 1.0
------
Revision and new conceptual design
Version 0.7.2
------
Supplemented tasks in English from version 0.6.1.
Added separate tasks and manual PDF.
Version 0.7.1
------
Adapted signals for left- and right-hand traffic
@ -57,11 +63,10 @@ extended educational game with block logic.
Version 0.1
------
created first prototype with driving dynamics.
created first papercut prototype with driving dynamics.
Roadmap
------
* wood construction with instructions
* extend game with train numbers
* extend game with dispatching

View File

@ -10,6 +10,8 @@
\newcommand{\LP}{Leonhard Pelster}
\newcommand{\SZ}{Stephan Zieger}
\newcommand{\LE}{Laura Enders}
\newcommand{\PN}{Paula Neumann-Hillebrand}
\newcommand{\JW}{Jan Werner}
\begin{versionhistory}
%\vhEntry{<Version>}{<Date>}{<Author1>|<Author2>|...}{<Changes>}
\vhEntry{0.1}{2018-04-17}{MS|FN|LG}{
@ -60,7 +62,7 @@
\IfLanguage{ngerman}{Aufgaben aus Version 0.6.1 in englisch ergänzt}
\IfLanguage{english}{Supplemented tasks in English from version 0.6.1}
}
\vhEntry{1.0}{2020-06-20}{LP|MS}{
\vhEntry{1.0}{2020-09-30}{LP|MS|JW|PN|LG}{
\IfLanguage{ngerman}{Überarbeitung und Neukonzeption}
\IfLanguage{english}{Revision and new conceptual design}
}

View File

@ -12,27 +12,26 @@
\draw ([shift={(base)}] 1,0) rectangle ++(1,0.5);
\draw[line width=1pt] ([shift={(base)}] 1,0) -- ++(0,-0.2) -- ++(0.5,0);
\draw[line width=1pt] ([shift={(base)}] 1.65,-0.2) circle (0.15cm);
\draw ([shift={(base)}] 2,0) rectangle ++(1,0.5);
\draw ([shift={(base)}] 1,1) rectangle ++(1,0.5);
\draw[line width=1pt] ([shift={(base)}] 1,1) -- ++(0,-0.2) -- ++(0.5,0);
\draw[line width=1pt] ([shift={(base)}] 1.65,0.8) circle (0.15cm);
\draw ([shift={(base)}] 2,1) -- ++(0.6,0) -- ++(0.2,-0.2) -- ++(0.4,0.4) -- ++(-0.3,0.3) -- ++(-0.9,0) -- cycle;% curve
\draw ([shift={(base)}] 2,0) -- ++(2,0) -- ++(0,0.5) -- ++(-1.5,1) -- ++(-0.5,0) -- cycle;
\node at ([shift={(base)}] 3,0.5) {
\IfLanguage{english}{turnout}
\IfLanguage{ngerman}{Weiche}
};
\draw ([shift={(base)}] 3,0) -- ++(1,0) -- ++(0,0.5) -- ++(-0.8,0.7) -- ++(-0.4,-0.4) -- ++(0.2,-0.15) -- cycle;
\node at ([shift={(base)}] 3.5,-0.5) {W1};
\draw ([shift={(base)}] 4,0) rectangle ++(1,0.5);
\draw[dotted] ([shift={(base)}] 5,0) rectangle ++(1,0.5);
\draw[|<->|,>=latex] ([shift={(base)}] 4,0.85) -- ++(3,0) node[midway,fill=white] {25};
\draw ([shift={(base)}] 6,0) rectangle ++(1,0.5);
\draw ([shift={(base)}] 9,0) -- ++(-2,0) -- ++(0,0.5) -- ++(1.5,1) -- ++(0.5,0) -- cycle;
\node at ([shift={(base)}] 8,0.5) {
\IfLanguage{english}{turnout}
\IfLanguage{ngerman}{Weiche}
};
\draw ([shift={(base)}] 8,0) -- ++(-1,0) -- ++(0,0.5) -- ++(0.8,0.7) -- ++(0.4,-0.4) -- ++(-0.2,-0.15) -- cycle;
\node at ([shift={(base)}] 7.5,-0.5) {W2};
\draw ([shift={(base)}] 9,1) -- ++(-0.6,0) -- ++(-0.2,-0.2) -- ++(-0.4,0.4) -- ++(0.3,0.3) -- ++(0.9,0) -- cycle;% curve
\draw ([shift={(base)}] 8,0) rectangle ++(1,0.5);
\draw ([shift={(base)}] 9,0) rectangle ++(1,0.5);
\draw ([shift={(base)}] 9,1) rectangle ++(1,0.5);

View File

@ -8,8 +8,8 @@
\coordinate (base) at (0,0);
\draw[line width=1pt, fill=white] ([shift={(base)}] 0.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train
\node at (0,0.25) {1};
\draw[line width=1pt, fill=white] ([shift={(base)}] 22.1,0.25) -- ++(0.2,0.2) -- ++(2.6,0) -- ++(0,-0.4) -- ++(-2.6,0) -- cycle; % train
\node at (23,0.25) {2};
\draw[line width=1pt, fill=white] ([shift={(base)}] 20.1,0.25) -- ++(0.2,0.2) -- ++(2.6,0) -- ++(0,-0.4) -- ++(-2.6,0) -- cycle; % train
\node at (21,0.25) {2};
\draw ([shift={(base)}] 1,0) rectangle ++(1,0.5);
\draw[dotted] ([shift={(base)}] 2,0) rectangle ++(1,0.5);
@ -21,58 +21,54 @@
\draw[line width=1pt] ([shift={(base)}] 4.65,-0.2) circle (0.15cm);
\draw ([shift={(base)}] 5,0) rectangle ++(1,0.5);
\draw ([shift={(base)}] 8,0) -- ++(-2,0) -- ++(0,0.5) -- ++(1.5,1) -- ++(0.5,0) -- cycle;
\node at ([shift={(base)}] 7,0.5) {
\IfLanguage{english}{turnout}
\IfLanguage{ngerman}{Weiche}
};
\draw ([shift={(base)}] 7,0) -- ++(-1,0) -- ++(0,0.5) -- ++(0.8,0.7) -- ++(0.4,-0.4) -- ++(-0.2,-0.15) -- cycle;
\node at ([shift={(base)}] 6.5,-0.5) {W1};
\draw ([shift={(base)}] 8,1) -- ++(-0.6,0) -- ++(-0.2,-0.2) -- ++(-0.4,0.4) -- ++(0.3,0.3) -- ++(0.9,0) -- cycle;% curve
\draw ([shift={(base)}] 7,0) rectangle ++(1,0.5);
\draw ([shift={(base)}] 8,0) rectangle ++(1,0.5);
\draw ([shift={(base)}] 8,1) rectangle ++(1,0.5);
\draw[line width=1pt] ([shift={(base)}] 9,0.5) -- ++(0,0.2) -- ++(-0.5,0);
\draw[line width=1pt] ([shift={(base)}] 8.35,0.7) circle (0.15cm);
\draw[line width=1pt] ([shift={(base)}] 9,1.5) -- ++(0,0.2) -- ++(-0.5,0);
\draw[line width=1pt] ([shift={(base)}] 8.35,1.7) circle (0.15cm);
\draw ([shift={(base)}] 9,0) rectangle ++(1,0.5);
\draw[dotted] ([shift={(base)}] 10,0) rectangle ++(3,0.5);
\draw[|<->|,>=latex] ([shift={(base)}] 9,-0.45) -- ++(5,0) node[midway,fill=white] {6};
\draw ([shift={(base)}] 13,0) rectangle ++(1,0.5);
\draw ([shift={(base)}] 9,1) rectangle ++(1,0.5);
\draw[line width=1pt] ([shift={(base)}] 10,0.5) -- ++(0,0.2) -- ++(-0.5,0);
\draw[line width=1pt] ([shift={(base)}] 9.35,0.7) circle (0.15cm);
\draw[line width=1pt] ([shift={(base)}] 10,1.5) -- ++(0,0.2) -- ++(-0.5,0);
\draw[line width=1pt] ([shift={(base)}] 9.35,1.7) circle (0.15cm);
\draw[dotted] ([shift={(base)}] 10,1) rectangle ++(1,0.5);
\draw[|<->|,>=latex] ([shift={(base)}] 9,1.95) -- ++(3,0) node[midway,fill=white] {4};
\draw ([shift={(base)}] 11,1) rectangle ++(1,0.5);
\draw ([shift={(base)}] 10,0) rectangle ++(1,0.5);
\draw[dotted] ([shift={(base)}] 11,0) rectangle ++(3,0.5);
\draw[|<->|,>=latex] ([shift={(base)}] 10,-0.45) -- ++(5,0) node[midway,fill=white] {7};
\draw ([shift={(base)}] 14,0) rectangle ++(1,0.5);
\draw ([shift={(base)}] 13,1) -- ++(-1,0) -- ++(0,0.5) -- ++(0.8,0.7) -- ++(0.4,-0.4) -- ++(-0.2,-0.15) -- cycle;
\node at ([shift={(base)}] 12.3,2.5) {W2};
\draw ([shift={(base)}] 14,2) -- ++(-0.6,0) -- ++(-0.2,-0.2) -- ++(-0.4,0.4) -- ++(0.3,0.3) -- ++(0.9,0) -- cycle;% curve
\draw ([shift={(base)}] 10,1) rectangle ++(1,0.5);
\draw[dotted] ([shift={(base)}] 11,1) rectangle ++(1,0.5);
\draw[|<->|,>=latex] ([shift={(base)}] 10,1.95) -- ++(3,0) node[midway,fill=white] {4};
\draw ([shift={(base)}] 12,1) rectangle ++(1,0.5);
\draw[line width=1pt] ([shift={(base)}] 12,1) -- ++(0,-0.2) -- ++(0.5,0);
\draw[line width=1pt] ([shift={(base)}] 12.65,0.8) circle (0.15cm);
\draw ([shift={(base)}] 15,1) -- ++(-2,0) -- ++(0,0.5) -- ++(1.5,1) -- ++(0.5,0) -- cycle;
\node at ([shift={(base)}] 14,1.5) {
\IfLanguage{english}{turnout}
\IfLanguage{ngerman}{Weiche}
};
\draw[line width=1pt] ([shift={(base)}] 13,1) -- ++(0,-0.2) -- ++(0.5,0);
\draw[line width=1pt] ([shift={(base)}] 13.65,0.8) circle (0.15cm);
\draw ([shift={(base)}] 14,2) rectangle ++(1,0.5);
\draw[dotted] ([shift={(base)}] 15,2) rectangle ++(1,0.5);
\draw ([shift={(base)}] 15,2) rectangle ++(1,0.5);
\draw[dotted] ([shift={(base)}] 16,2) rectangle ++(1,0.5);
\draw ([shift={(base)}] 13,1) -- ++(0.6,0) -- ++(0.2,-0.2) -- ++(0.4,0.4) -- ++(-0.3,0.3) -- ++(-0.9,0) -- cycle;% curve
\draw ([shift={(base)}] 15,0) -- ++(2,0) -- ++(0,0.5) -- ++(-1.5,1) -- ++(-0.5,0) -- cycle;
\node at ([shift={(base)}] 16,0.5) {
\IfLanguage{english}{turnout}
\IfLanguage{ngerman}{Weiche}
};
\draw[line width=1pt] ([shift={(base)}] 15,0) -- ++(0,-0.2) -- ++(0.5,0);
\draw[line width=1pt] ([shift={(base)}] 15.65,-0.2) circle (0.15cm);
\draw ([shift={(base)}] 14,0) -- ++(1,0) -- ++(0,0.5) -- ++(-0.8,0.7) -- ++(-0.4,-0.4) -- ++(0.2,-0.15) -- cycle;
\node at ([shift={(base)}] 14.8,-0.5) {W3};
\draw[line width=1pt] ([shift={(base)}] 13,0) -- ++(0,-0.2) -- ++(0.5,0);
\draw[line width=1pt] ([shift={(base)}] 13.65,-0.2) circle (0.15cm);
\draw ([shift={(base)}] 15,0) rectangle ++(1,0.5);
\draw ([shift={(base)}] 16,0) rectangle ++(1,0.5);
\draw[line width=1pt] ([shift={(base)}] 17,0.5) -- ++(0,0.2) -- ++(-0.5,0);
\draw[line width=1pt] ([shift={(base)}] 16.35,0.7) circle (0.15cm);
\draw ([shift={(base)}] 17,0) rectangle ++(1,0.5);
\draw ([shift={(base)}] 18,0) rectangle ++(1,0.5);
\draw[line width=1pt] ([shift={(base)}] 19,0.5) -- ++(0,0.2) -- ++(-0.5,0);
\draw[line width=1pt] ([shift={(base)}] 18.35,0.7) circle (0.15cm);
\draw[dotted] ([shift={(base)}] 18,0) rectangle ++(1,0.5);
\draw[|<->|,>=latex] ([shift={(base)}] 17,0.95) -- ++(3,0) node[midway,fill=white] {15};
\draw ([shift={(base)}] 19,0) rectangle ++(1,0.5);
\draw[dotted] ([shift={(base)}] 20,0) rectangle ++(1,0.5);
\draw[|<->|,>=latex] ([shift={(base)}] 19,0.95) -- ++(3,0) node[midway,fill=white] {15};
\draw ([shift={(base)}] 21,0) rectangle ++(1,0.5);
\end{scope}

View File

@ -9,10 +9,10 @@
\draw[line width=1pt, fill=white] ([shift={(base)}] 0.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train
\node at ( 0,0.25) {3};
\draw[line width=1pt, fill=white] ([shift={(base)}] 14.1,1.25) -- ++(0.2,0.2) -- ++(2.6,0) -- ++(0,-0.4) -- ++(-2.6,0) -- cycle; % train
\node at (15,1.25) {2};
\draw[line width=1pt, fill=white] ([shift={(base)}] 12.1,3.25) -- ++(0.2,0.2) -- ++(2.6,0) -- ++(0,-0.4) -- ++(-2.6,0) -- cycle; % train
\node at (13,3.25) {1};
\draw[line width=1pt, fill=white] ([shift={(base)}] 12.1,1.25) -- ++(0.2,0.2) -- ++(2.6,0) -- ++(0,-0.4) -- ++(-2.6,0) -- cycle; % train
\node at (13,1.25) {2};
\draw[line width=1pt, fill=white] ([shift={(base)}] 11.1,2.75) -- ++(0.2,0.2) -- ++(2.6,0) -- ++(0,-0.4) -- ++(-2.6,0) -- cycle; % train
\node at (12,2.75) {1};
\draw ([shift={(base)}] 1,0) rectangle ++(1,0.5);
\draw[dotted] ([shift={(base)}] 2,0) rectangle ++(1,0.5);
@ -24,11 +24,12 @@
\draw[line width=1pt] ([shift={(base)}] 4.65,-0.2) circle (0.15cm);
\draw ([shift={(base)}] 5,0) rectangle ++(1,0.5);
\draw ([shift={(base)}] 8,0) -- ++(-2,0) -- ++(0,0.5) -- ++(1.5,1) -- ++(0.5,0) -- cycle;
\node at ([shift={(base)}] 7,0.5) {
\IfLanguage{english}{turnout}
\IfLanguage{ngerman}{Weiche}
};
\draw ([shift={(base)}] 7,0) -- ++(-1,0) -- ++(0,0.5) -- ++(0.8,0.7) -- ++(0.4,-0.4) -- ++(-0.2,-0.15) -- cycle;
\node at ([shift={(base)}] 6.5,-0.5) {W1};
\draw ([shift={(base)}] 8,1) -- ++(-0.6,0) -- ++(-0.2,-0.2) -- ++(-0.4,0.4) -- ++(0.3,0.3) -- ++(0.9,0) -- cycle;% curve
\draw ([shift={(base)}] 7,0) rectangle ++(1,0.5);
\draw ([shift={(base)}] 8,0) rectangle ++(1,0.5);
\draw ([shift={(base)}] 9,0) rectangle ++(1,0.5);
\draw ([shift={(base)}] 10,0) rectangle ++(1,0.5);
@ -36,33 +37,28 @@
\draw[dotted] ([shift={(base)}] 12,0) rectangle ++(1,0.5);
\draw[->,>=latex,,shorten <=2,line width=1pt] (13,0.25) -- ++(0.75,0);
\draw ([shift={(base)}] 8,1) -- ++(1,0) -- ++(0,0.5) -- ++(-0.8,0.7) -- ++(-0.4,-0.4) -- ++(0.2,-0.15) -- cycle;
\node at ([shift={(base)}] 8.5,0.75) {W2};
\draw ([shift={(base)}] 8,1) rectangle ++(1,0.5);
\draw ([shift={(base)}] 9,1) -- ++(2,0) -- ++(0,0.5) -- ++(-1.5,1) -- ++(-0.5,0) -- cycle;
\node at ([shift={(base)}] 10,1.5) {
\IfLanguage{english}{turnout}
\IfLanguage{ngerman}{Weiche}
};
\draw ([shift={(base)}] 9,1) rectangle ++(1,0.5);
\draw ([shift={(base)}] 10,1) rectangle ++(1,0.5);
\draw ([shift={(base)}] 11,1) rectangle ++(1,0.5);
\draw ([shift={(base)}] 12,1) rectangle ++(1,0.5);
\draw ([shift={(base)}] 13,1) rectangle ++(1,0.5);
\draw[line width=1pt] ([shift={(base)}] 13,1.5) -- ++(0,0.2) -- ++(-0.5,0);
\draw[line width=1pt] ([shift={(base)}] 12.35,1.7) circle (0.15cm);
\draw[line width=1pt] ([shift={(base)}] 11,1.5) -- ++(0,0.2) -- ++(-0.5,0);
\draw[line width=1pt] ([shift={(base)}] 10.35,1.7) circle (0.15cm);
\draw[->,>=latex,,shorten <=2,line width=1pt] (3,3.25) -- ++(-0.75,0);
\draw[dotted] ([shift={(base)}] 3,3) rectangle ++(1,0.5);
\draw ([shift={(base)}] 4,3) rectangle ++(1,0.5);
\draw ([shift={(base)}] 5,3) rectangle ++(1,0.5);
\draw ([shift={(base)}] 6,3) rectangle ++(1,0.5);
\draw ([shift={(base)}] 9,3.5) -- ++(-2,0) -- ++(0,-0.5) -- ++(1.5,-1) -- ++(0.5,0) -- cycle;
\node at ([shift={(base)}] 8,3) {
\IfLanguage{english}{turnout}
\IfLanguage{ngerman}{Weiche}
};
\draw ([shift={(base)}] 9,3) rectangle ++(1,0.5);
\draw ([shift={(base)}] 10,3) rectangle ++(1,0.5);
\draw ([shift={(base)}] 11,3) rectangle ++(1,0.5);
\draw[line width=1pt] ([shift={(base)}] 11,3.5) -- ++(0,0.2) -- ++(-0.5,0);
\draw[line width=1pt] ([shift={(base)}] 10.35,3.7) circle (0.15cm);
\draw[->,>=latex,,shorten <=2,line width=1pt] (3,2.75) -- ++(-0.75,0);
\draw[dotted] ([shift={(base)}] 3,2.5) rectangle ++(1,0.5);
\draw ([shift={(base)}] 4,2.5) rectangle ++(1,0.5);
\draw ([shift={(base)}] 5,2.5) rectangle ++(1,0.5);
\draw ([shift={(base)}] 6,2.5) rectangle ++(1,0.5);
\draw ([shift={(base)}] 8,3) -- ++(-1,0) -- ++(0,-0.5) -- ++(0.8,-0.7) -- ++(0.4,0.4) -- ++(-0.2,0.15) -- cycle;
\node at ([shift={(base)}] 7.5,3.5) {W3};
\draw ([shift={(base)}] 8,2.5) rectangle ++(1,0.5);
\draw ([shift={(base)}] 9,2.5) rectangle ++(1,0.5);
\draw ([shift={(base)}] 10,2.5) rectangle ++(1,0.5);
\draw[line width=1pt] ([shift={(base)}] 10,3) -- ++(0,0.2) -- ++(-0.5,0);
\draw[line width=1pt] ([shift={(base)}] 9.35,3.2) circle (0.15cm);
\end{scope}

Binary file not shown.

View File

@ -13,6 +13,6 @@
\begin{document}
\begin{tikzpicture}[font=\sffamily]
\input{composition.tikz}
\input{challenge4_setup.tikz}
\end{tikzpicture}
\end{document}

View File

@ -0,0 +1,125 @@
%!TEX TS-program = pdflatexmk
%!TEX root = challenge4_setup.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\begin{scope}[>=latex,line width=1pt]
\coordinate (A) at ( 0,0);
\coordinate (B) at ( 2,0);
\coordinate (C) at ( 5,0);
\coordinate (D) at ( 7,0);
\coordinate (E) at (10,0);
\coordinate (F) at (13,0);
\coordinate (G) at ( 0.5,3);
\coordinate (H) at ( 3,3);
\coordinate (I) at ( 9,3);
\coordinate (J) at (11.5,3);
% station names
\coordinate (label_bottom) at (0,-1.5);
\coordinate (label_top) at (0, 1.5);
\node[align=right,left] at (A) {Arnau};
\node at ([shift={(label_bottom)}] B) {Berg};
\node at ([shift={(label_bottom)}] C) {Chamstadt};
\node at ([shift={(label_bottom)}] D) {Dornroda};
\node at ([shift={(label_bottom)}] E) {Ehrenstein};
\node[align=left,right] at (F) {Fuchstal};
\node at ([shift={(label_top)}] G) {Grafenhain};
\node at ([shift={(label_top)}] H) {Heidehafen};
\node at ([shift={(label_top)}] I) {Ilsenbüttel};
\node at ([shift={(label_top)}] J) {Johannaruh};
% station markers
\draw ([shift={(0,-1)}] B) -- ++(0,1.5);
\draw ([shift={(0,-1)}] C) -- ++(0,2);
\draw ([shift={(0,-1)}] D) -- ++(0,2.3);
\draw ([shift={(0,-1)}] E) -- ++(0,2);
\draw (G) -- ++(0,1);
\draw (H) -- ++(0,1);
\draw (I) -- ++(0,1);
\draw (J) -- ++(0,1);
\draw[line width=0.5pt, dotted] ([shift={(-0.3,-1.1)}] C) rectangle ([shift={(0.3,1.1)}] C);
\draw[line width=0.5pt, dotted] ([shift={(-0.3,-1.1)}] D) rectangle ([shift={(0.3,1.5)}] D);
% transport
\draw[ red] ([shift={(0,1.05)}] D) -- ++(0.5,0) -- ([shift={(-0.5,0.5)}]I) -- ([shift={(0,0.5)}] I) -- ([shift={(0,0.5)}] J);
\draw[ transform canvas={yshift=1.05cm},red,fill=white] (D) circle [radius=0.12];
\filldraw[transform canvas={yshift= .5cm} ,red ] (I) circle [radius=0.08];
\draw[ transform canvas={yshift= .5cm} ,red,fill=white] (J) circle [radius=0.12];
\node[red] at (10,3.7) {\footnotesize
\IfLanguage{english}{local}
\IfLanguage{ngerman}{Nah}
};
\draw[ ->,transform canvas={yshift= .75cm},blue ] ([shift={(-0.25,0)}]H) -- (H) -- ++(0.5,0) -- ([shift={(-0.5,0)}]C) -- (C) -- (D) -- (E) -- (F);
\draw[ transform canvas={yshift= .75cm},blue,fill=white] (H) circle [radius=0.12];
\draw[ transform canvas={yshift= .75cm},blue ] ([shift={(-0.25,0.1)}]H) -- ++(0,-0.2);
\node[blue] at (11,1) {\footnotesize
\IfLanguage{english}{freight}
\IfLanguage{ngerman}{Güter}
};
\draw[ ->,transform canvas={yshift= .45cm},red ] (G) -- (H) -- ++(0.5,0) -- ([shift={(-0.5,0)}]C) -- (C) -- (D) -- (E) -- (F);
\draw[ transform canvas={yshift= .45cm},red,fill=white] (G) circle [radius=0.12];
\filldraw[transform canvas={yshift= .45cm},red ] (H) circle [radius=0.08] (C) circle [radius=0.08] (D) circle [radius=0.08] (E) circle [radius=0.08];
\node[red] at (2,3.7) {\footnotesize
\IfLanguage{english}{local}
\IfLanguage{ngerman}{Nah}
};
\draw[<->,transform canvas={yshift= .15cm},green] (A) -- (B) -- (C) -- (D) -- (E) -- (F);
\filldraw[transform canvas={yshift= .15cm},green] (D) circle [radius=0.08];
\node[green] at (1,0.4) {\footnotesize
\IfLanguage{english}{fast}
\IfLanguage{ngerman}{Fern}
};
\draw[<->,transform canvas={yshift=-.15cm},green] (A) -- (B) -- (C) -- (D) -- (E) -- (F);
\filldraw[transform canvas={yshift=-.15cm},green] (D) circle [radius=0.08];
\node[green] at (1,-0.4) {\footnotesize
\IfLanguage{english}{fast}
\IfLanguage{ngerman}{Fern}
};
\draw[ ->,transform canvas={yshift=-.45cm},red ] (B) -- (C) -- (D) -- (E) -- (F);
\draw[ transform canvas={yshift=-.45cm},red,fill=white] (B) circle [radius=0.12];
\filldraw[transform canvas={yshift=-.45cm},red ] (C) circle [radius=0.08] (D) circle [radius=0.08] (E) circle [radius=0.08];
\node[red] at (3.5,-0.3) {\footnotesize
\IfLanguage{english}{local}
\IfLanguage{ngerman}{Nah}
};
\draw[ ->,transform canvas={yshift=-.75cm},blue ] ([shift={(-0.25,0)}]B) -- (B) -- (C) -- (D) -- (E) -- (F);
\draw[ transform canvas={yshift=-.75cm},blue,fill=white] (B) circle [radius=0.12];
\draw[ transform canvas={yshift=-.75cm},blue ] ([shift={(-0.25,0.1)}]B) -- ++(0,-0.2);
\node[blue] at (11,-1) {\footnotesize
\IfLanguage{english}{freight}
\IfLanguage{ngerman}{Güter}
};
% legend
\draw [->,line width=0.5pt,black!50] (9.5,1.8) -- ++(0.45,-1) node [at start,align=center,fill=white] {\scriptsize
\IfLanguage{english}{pass through}
\IfLanguage{ngerman}{Durchfahrt}
};
\draw [->,line width=0.5pt,black!50] (9.5,2.3) -- ++(-0.4,1.) node [at start,align=center,fill=white] {\scriptsize
\IfLanguage{english}{stop on route}
\IfLanguage{ngerman}{Unterwegshalt}
};
\draw [->,line width=0.5pt,black!50] (12,2.1) -- ++(-0.4,1.2) node [at start,align=center,fill=white] {\scriptsize
\IfLanguage{english}{stop with turnaround}
\IfLanguage{ngerman}{Wendehalt}
};
\draw [->,line width=0.5pt,black!50] (5,4) -- ++(-1.8,-0.15) node [at start,align=center,fill=white] {\scriptsize
\IfLanguage{english}{stop with clearing}
\IfLanguage{ngerman}{Halt mit Abräumen}
};
\draw [->,line width=0.5pt,black!50] (6,2) -- ++(0.7,-0.5) node [at start,align=center,fill=white] {\scriptsize
\IfLanguage{english}{Node}
\IfLanguage{ngerman}{Knoten}
};
\end{scope}

Binary file not shown.

View File

@ -1,45 +0,0 @@
%!TEX TS-program = pdflatexmk
%!TEX root = composition.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\begin{scope}[>=latex]
\coordinate (base) at (0,0);
\draw [dashed] ([shift={(base)}] 0,0) rectangle ++(1,0.5);
\draw [dashed] ([shift={(base)}] 15,0) rectangle ++(1,0.5);
\foreach \x in {1,...,14}
\draw ([shift={(base)}] \x,0) rectangle ++(1,0.5);
\draw [<->] ([shift={(base)}] 10.5,0.9) -- ++ (4,0) node [fill=white,midway] {
\IfLanguage{english}{train movement}
\IfLanguage{ngerman}{Zugbewegung}
};
\draw ([shift={(base)}] 5,1.1) -- ++(0,-0.4) -- ++ (3,0) -- ++(0,0.4);
\draw ([shift={(base)}] 5,0.8) -- ++ (3,0) node [above,midway] {
\IfLanguage{english}{platform}
\IfLanguage{ngerman}{Bahnsteig}
};
% distant signal
\draw [dashed] ([shift={(base)}] 2,-0.1) -- ++(0,-0.2) -- ++(1,0) -- ++(0,0.2);
\path[draw, line width=1pt] ([shift={(base)}] 2,-0.3) -- ++(0,-0.2) -- ++(0.3,0);
\path[draw, line width=1pt] ([shift={(base)}] 2.3,-0.5) -- ++(0.2,0.15) -- ++(0,-0.3) -- cycle;
\draw [->] ([shift={(base)}] 5.0,-0.5) -- ([shift={(base)}] 2.9,-0.5) node [near start,align=right,fill=white] {
\IfLanguage{english}{distant signal}
\IfLanguage{ngerman}{Vorsignal}
};
% block signal
\draw [dashed] ([shift={(base)}] 9,-0.1) -- ++(0,-0.2) -- ++(1,0) -- ++(0,0.2);
\path[draw, line width=1pt] ([shift={(base)}] 9,-0.3) -- ++(0,-0.2) -- ++(0.5,0);
\path[draw, line width=1pt] ([shift={(base)}] 9.5,-0.65) rectangle ++(0.3,0.3);
\draw [->] ([shift={(base)}] 6.5,-1.2) -- ([shift={(base)}] 8.9,-0.6) node [near start,align=right,fill=white] {
\IfLanguage{english}{block signal}
\IfLanguage{ngerman}{Blocksignal}
};
% clearing point
\path[draw, line width=1pt] ([shift={(base)}] 10,-0.3) -- ++(0,-0.1);
\path[draw, line width=1pt] ([shift={(base)}] 9.95,-0.4) rectangle ++(0.1,-0.1);
\draw [->] ([shift={(base)}] 13.5,-0.8) -- ([shift={(base)}] 10.2,-0.45) node [near start,align=right,fill=white] {
\IfLanguage{english}{block clearing point}
\IfLanguage{ngerman}{Signalzugschlussstelle}
};
\end{scope}

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,26 @@
%!TEX TS-program = pdflatexmk
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\documentclass[tikz,border=2,preview=true]{standalone}
\usepackage[prefix=]{xcolor-solarized}
\usepackage[main=english,ngerman]{babel}
\usepackage{iflang} % needs babel
\newcommand{\IfLanguage}[2]{\IfLanguageName{#1}{#2}{}}
\usepackage{lmodern,microtype,mathptmx,courier}
\usepackage{xfrac} % provides slanted fractures with \sfrac{}{}
\usepackage{siunitx} % for SI-Units
\sisetup{
per-mode=fraction,
fraction-function=\sfrac
}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}[font=\sffamily]
\input{driving_board.tikz}
\end{tikzpicture}
\end{document}

View File

@ -0,0 +1,58 @@
%!TEX TS-program = pdflatexmk
%!TEX root = driving_board.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\begin{scope}[>=latex]
\draw[rounded corners=4pt] (-6,-1) rectangle ++(18,4);
\draw[fill=lightgray!20,rounded corners=8pt] (-5.7,-0.2) rectangle ++(4.7,2.5);
\draw[fill=white] (-3.2,0.8) rectangle ++(2,1);
\node at (-2.2,1.3) {\ttfamily\huge 0000};
\draw[fill=white] (-5.5,0.8) rectangle ++(2,1);
\node at (-4.5,1.3) {\ttfamily\huge 0000};
% driving dynamics model
\begin{scope}[>=latex]
\draw[fill=lightgray,rounded corners=8pt] (-0.5,-0.7) rectangle ++(12,3.4);
% arrows
\draw [->,line width=2pt] (1.5,0) .. controls (2,-0.5) and (3,-0.5) .. (3.5,0);
\draw [->,line width=2pt] (4.5,0) .. controls (5,-0.5) and (6,-0.5) .. (6.5,0);
\draw [->,line width=2pt] (7.5,0) .. controls (8,-0.5) and (9,-0.5) .. (9.5,0);
\draw [<-,line width=2pt] (1.5,2) .. controls (2, 2.5) and (3, 2.5) .. (3.5,2);
\draw [<-,line width=2pt] (4.5,2) .. controls (5, 2.5) and (6, 2.5) .. (6.5,2);
\draw [<-,line width=2pt] (7.5,2) .. controls (8, 2.5) and (9, 2.5) .. (9.5,2);
\foreach \x in {0,3,6,9}
\draw [fill=white] (\x,0) rectangle ++(2,2);
\end{scope}
% control lever
\node [cylinder, shape border rotate=90, draw, minimum height=2.5cm, minimum width=1.2cm, fill=base00] at (1,1.9) {};
% description
\draw [<-] (1,3.3) -- ++(0,0.7) node [at end,fill=white] {
\IfLanguage{english}{control lever}
\IfLanguage{ngerman}{Schalthebel}
};
\draw [<-] (-3.0,1.9) -- ++(0,1.7) node [at end,right,align=left,shift={(-0.2,0)},fill=white] {
\IfLanguage{english}{counter rounds}
\IfLanguage{ngerman}{Runden Zähler}
};
\draw [<-] (-3.7,1.9) -- ++(0,1.7) node [at end,left,align=right,shift={(0.45,-0.05)},fill=white] {
\IfLanguage{english}{counter position}
\IfLanguage{ngerman}{Positions Zähler}
};
\draw [<-] (2.5,-0.5) -- ++(0,-0.9) node [at end,fill=white] {
\IfLanguage{english}{control lever movements}
\IfLanguage{ngerman}{Schalthebelbewegungen}
};
\draw [<-] (8.5,-0.8) -- ++(0,-0.9) node [at end,fill=white] {
\IfLanguage{english}{driving dynamics model}
\IfLanguage{ngerman}{Fahrdynamikmodell des Zuges}
};
\draw [<-] (8,3.1) -- ++(1,0.7) node [at end,fill=white] {
\IfLanguage{english}{driving board}
\IfLanguage{ngerman}{Fahrbrett}
};
\end{scope}

Binary file not shown.

View File

@ -0,0 +1,18 @@
%!TEX TS-program = pdflatexmk
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\documentclass[tikz,border=2,preview=true]{standalone}
\usepackage[prefix=]{xcolor-solarized}
\usepackage[main=english,ngerman]{babel}
\usepackage{iflang} % needs babel
\newcommand{\IfLanguage}[2]{\IfLanguageName{#1}{#2}{}}
\usepackage{lmodern,microtype,mathptmx,courier}
\begin{document}
\begin{tikzpicture}[font=\sffamily]
\input{tutorial_followprotection_setup.tikz}
\end{tikzpicture}
\end{document}

View File

@ -0,0 +1,80 @@
%!TEX TS-program = pdflatexmk
%!TEX root = tutorial_followprotection_setup.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\begin{scope}[>=latex]
\coordinate (base) at (0,0);
\foreach \x in {2,5,3,8,13}
\draw[dotted] ([shift={(base)}] \x,0) rectangle ++(1,0.5);
\foreach \x in {-4,-3,-2,-1,0,1,3,4,6,7,9,10,11,12,14}
\draw ([shift={(base)}] \x,0) rectangle ++(1,0.5);
\node at ([shift={(base)}]-3.5,0.25) {-4};
\node at ([shift={(base)}]-2.5,0.25) {-3};
\node at ([shift={(base)}]-1.5,0.25) {-2};
\node at ([shift={(base)}]-0.5,0.25) {-1};
\node at ([shift={(base)}] 0.5,0.25) {0};
\node at ([shift={(base)}] 1.5,0.25) {1};
\node at ([shift={(base)}] 3.5,0.25) {10};
\node at ([shift={(base)}] 4.5,0.25) {11};
\node at ([shift={(base)}] 6.5,0.25) {15};
\node at ([shift={(base)}] 7.5,0.25) {16};
\node at ([shift={(base)}] 9.5,0.25) {23};
\node at ([shift={(base)}]10.5,0.25) {24};
\node at ([shift={(base)}]11.5,0.25) {25};
\node at ([shift={(base)}]12.5,0.25) {26};
\node at ([shift={(base)}]14.5,0.25) {40};
% distance
\draw[|<->|,>=latex,shorten >=2,shorten <=2] ([shift={(base)}] 1,0.85) -- ++(3,0) node[midway,fill=white] {10};
\draw[|<->|,>=latex,shorten >=2,shorten <=2] ([shift={(base)}] 4,0.85) -- ++(3,0) node[midway,fill=white] {5};
\draw[|<->|,>=latex,shorten >=2,shorten <=2] ([shift={(base)}] 7,0.85) -- ++(3,0) node[midway,fill=white] {8};
\draw[|<->|,>=latex,shorten >=2,shorten <=2] ([shift={(base)}]12,0.85) -- ++(3,0) node[midway,fill=white] {15};
% trains
\draw[line width=1pt, fill=white] ([shift={(base)}] 0.9,0.25) -- ++(-0.2,-0.2) -- ++(-3.7,0) -- ++(0,0.4) -- ++(3.7,0) -- cycle; % train
\node at ([shift={(base)}]-1.5,0.25) {\tiny
\IfLanguage{english}{fast train}
\IfLanguage{ngerman}{Fernverkehr}
};
\draw[line width=1pt, fill=white] ([shift={(base)}]11.9,0.25) -- ++(-0.2,-0.2) -- ++(-1.7,0) -- ++(0,0.4) -- ++(1.7,0) -- cycle; % train
\node at ([shift={(base)}]11,0.25) {\tiny
\IfLanguage{english}{local train}
\IfLanguage{ngerman}{Nahverkehr}
};
% platforms
\draw ([shift={(base)}]10,1.1) -- ++(0,-0.4) -- ++ (2,0) -- ++(0,0.4);
\draw ([shift={(base)}]10,0.8) -- ++ (2,0) node [above,midway] {
\IfLanguage{english}{platform}
\IfLanguage{ngerman}{Bahnsteig}
};
% distant signal
\path[draw, line width=1pt] ([shift={(base)}] 1,-0.1) -- ++(0,-0.3) -- ++(0.3,0);
\path[draw, line width=1pt] ([shift={(base)}] 1.3,-0.4) -- ++(0.2,0.15) -- ++(0,-0.3) -- cycle;
\draw [->] ([shift={(base)}] 3,-1.2) -- ([shift={(base)}] 1.7,-0.5) node [near start,align=right,fill=white] {
\IfLanguage{english}{distant signal}
\IfLanguage{ngerman}{Vorsignal}
};
\path[draw, line width=1pt] ([shift={(base)}] 7,-0.1) -- ++(0,-0.3) -- ++(0.3,0);
\path[draw, line width=1pt] ([shift={(base)}] 7.3,-0.4) -- ++(0.2,0.15) -- ++(0,-0.3) -- cycle;
% block signal
\path[draw, line width=1pt] ([shift={(base)}] 4,-0.1) -- ++(0,-0.3) -- ++(0.5,0);
\path[draw, line width=1pt] ([shift={(base)}] 4.5,-0.55) rectangle ++(0.3,0.3);
\draw [->] ([shift={(base)}] 5,-1.8) -- ([shift={(base)}] 4.7,-0.7) node [near start,align=right,fill=white] {
\IfLanguage{english}{main signal}
\IfLanguage{ngerman}{Hauptsignal}
};
\path[draw, line width=1pt] ([shift={(base)}]12,-0.1) -- ++(0,-0.3) -- ++(0.5,0);
\path[draw, line width=1pt] ([shift={(base)}]12.5,-0.55) rectangle ++(0.3,0.3);
% block clearing point
\path[draw, line width=1pt] ([shift={(base)}] 5,-0.1) -- ++(0,-0.15);
\path[draw, line width=1pt] ([shift={(base)}] 4.95,-0.25) rectangle ++(0.1,-0.1);
\draw [->] ([shift={(base)}] 9,-1.3) -- ([shift={(base)}] 5.1,-0.3) node [near start,align=right,fill=white] {
\IfLanguage{english}{clearing point}
\IfLanguage{ngerman}{Signalzugschlussstelle}
};
\path[draw, line width=1pt] ([shift={(base)}] 13,-0.1) -- ++(0,-0.15);
\path[draw, line width=1pt] ([shift={(base)}] 12.95,-0.25) rectangle ++(0.1,-0.1);
\end{scope}

Binary file not shown.

View File

@ -0,0 +1,18 @@
%!TEX TS-program = pdflatexmk
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\documentclass[tikz,border=2,preview=true]{standalone}
\usepackage[prefix=]{xcolor-solarized}
\usepackage[main=english,ngerman]{babel}
\usepackage{iflang} % needs babel
\newcommand{\IfLanguage}[2]{\IfLanguageName{#1}{#2}{}}
\usepackage{lmodern,microtype,mathptmx,courier}
\begin{document}
\begin{tikzpicture}[font=\sffamily]
\input{tutorial_routeprotection_setup.tikz}
\end{tikzpicture}
\end{document}

View File

@ -0,0 +1,167 @@
%!TEX TS-program = pdflatexmk
%!TEX root = tutorial_routeprotection_setup.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\begin{scope}[>=latex]
\coordinate (base) at (0,0);
\foreach \x in {-1}
\draw[dotted] ([shift={(base)}] \x,0) rectangle ++(1,0.5);
\foreach \x in {16}
\draw[dotted] ([shift={(base)}] \x,-1) rectangle ++(1,0.5);
\foreach \x in {2,3,5,6,7,8,9,10}
\draw ([shift={(base)}] \x,1.5) rectangle ++(1,0.5);
\foreach \x in {0,1,2,5,6,7,8,9,10}
\draw ([shift={(base)}] \x,0) rectangle ++(1,0.5);
\foreach \x in {6,7,8,9,10,11,13,14,15}
\draw ([shift={(base)}] \x,-1) rectangle ++(1,0.5);
\node at ([shift={(base)}] 0.5,0.25) {0};
\node at ([shift={(base)}] 1.5,0.25) {1};
\node at ([shift={(base)}] 2.5,0.25) {2};
\node at ([shift={(base)}] 5.5,0.25) {5};
\node at ([shift={(base)}] 6.5,0.25) {6};
\node at ([shift={(base)}] 7.5,0.25) {7};
\node at ([shift={(base)}] 8.5,0.25) {8};
\node at ([shift={(base)}] 9.5,0.25) {9};
\node at ([shift={(base)}]10.5,0.25) {10};
\node at ([shift={(base)}]11.5,-0.75) {11};
\node at ([shift={(base)}]13.5,-0.75) {13};
\node at ([shift={(base)}]14.5,-0.75) {14};
\node at ([shift={(base)}]15.5,-0.75) {15};
\node at ([shift={(base)}]8, 2.25) {
\IfLanguage{english}{track 1}
\IfLanguage{ngerman}{Gleis 1}
};
\node at ([shift={(base)}]8, 0.85) {
\IfLanguage{english}{track 2}
\IfLanguage{ngerman}{Gleis 2}
};
\node at ([shift={(base)}]8,-1.25) {
\IfLanguage{english}{track 3}
\IfLanguage{ngerman}{Gleis 3}
};
% train
\draw[line width=1pt, fill=white] ([shift={(base)}] 0.9,0.25) -- ++(-0.2,-0.2) -- ++(-1.6,0) -- ++(0,0.4) -- ++(1.6,0) -- cycle; % train
% turnouts
\draw ([shift={(base)}] 4,0) -- ++(-1,0) -- ++(0,0.5) -- ++(0.8,0.7) -- ++(0.4,-0.4) -- ++(-0.2,-0.15) -- cycle;
\node at ([shift={(base)}] 3.5,0.25) {W1};
\draw [->] ([shift={(base)}] 3.8,-0.95) -- ++(0,0.9) node [near start,align=right,fill=white] {
\IfLanguage{english}{turnout}
\IfLanguage{ngerman}{Weiche}
};
\draw ([shift={(base)}] 5,0.5) -- ++(-1,0) -- ++(0,-0.5) -- ++(0.8,-0.7) -- ++(0.4,0.4) -- ++(-0.2,0.15) -- cycle;
\node at ([shift={(base)}] 4.5,0.25) {W2};
\draw ([shift={(base)}] 6,-0.5) -- ++(-0.6,0) -- ++(-0.2,0.2) -- ++(-0.4,-0.4) -- ++(0.3,-0.3) -- ++(0.9,0) -- cycle;% curve
\draw ([shift={(base)}] 4,2) -- ++(1,0) -- ++(0,-0.5) -- ++(-0.8,-0.7) -- ++(-0.4,0.4) -- ++(0.2,0.15) -- cycle;
\node at ([shift={(base)}]4.5,1.75) {W3};
\draw ([shift={(base)}] 12,-1) -- ++(1,0) -- ++(0,0.5) -- ++(-0.8,0.7) -- ++(-0.4,-0.4) -- ++(0.2,-0.15) -- cycle;
\node at ([shift={(base)}]12.5,-0.75) {W4};
\draw ([shift={(base)}] 11,0) -- ++(0.6,0) -- ++(0.2,-0.2) -- ++(0.4,0.4) -- ++(-0.3,0.3) -- ++(-0.9,0) -- cycle;% curve
% track clousures
\draw ([shift={(base)}] 2,1.375) -- ++(-0.2,0) -- ++(0,0.75) -- ++(0.2,0);
\draw ([shift={(base)}] 11,1.375) -- ++(0.2,0) -- ++(0,0.75) -- ++(-0.2,0);
\draw [->] ([shift={(base)}] 0.5,2.75) -- ++(1,-.5) node [near start,align=right,fill=white] {
\IfLanguage{english}{track closure}
\IfLanguage{ngerman}{Gleisabschluss}
};
% signals
\draw[line width=1pt] ([shift={(base)}] 1,-0.1) -- ++(0,-0.2) -- ++(0.5,0);
\draw[line width=1pt] ([shift={(base)}] 1.65,-0.3) circle (0.15cm);
\draw[line width=1pt] ([shift={(base)}] 1,-0.4) -- ++(0,-0.3) -- ++(0.3,0);
\draw[line width=1pt] ([shift={(base)}] 1.3,-0.7) -- ++(0.2,0.15) -- ++(0,-0.3) -- cycle;
\node at ([shift={(base)}]0.8,-0.4) {A};
\draw[line width=1pt] ([shift={(base)}] 5,2.1) -- ++(0,0.2) -- ++(-0.5,0);
\draw[line width=1pt] ([shift={(base)}] 4.35,2.3) circle (0.15cm);
\node at ([shift={(base)}]5.2,2.3) {B};
\draw [->] ([shift={(base)}] 5.5,3.25) -- ++(-0.9,-0.9) node [near start,align=right,fill=white] {
\IfLanguage{english}{main signal with route box}
\IfLanguage{ngerman}{Hauptsignal mit Fahrstraßenfeld}
};
\draw[line width=1pt] ([shift={(base)}] 6,0.6) -- ++(0,0.2) -- ++(-0.5,0);
\draw[line width=1pt] ([shift={(base)}] 5.35,0.8) circle (0.15cm);
\node at ([shift={(base)}]6.2,0.8) {C};
\draw[line width=1pt] ([shift={(base)}] 6,-0.4) -- ++(0,0.2) -- ++(-0.5,0);
\draw[line width=1pt] ([shift={(base)}] 5.35,-0.2) circle (0.15cm);
\node at ([shift={(base)}]6.2,-0.2) {D};
\draw[line width=1pt] ([shift={(base)}] 11,-0.1) -- ++(0,-0.2) -- ++(0.5,0);
\draw[line width=1pt] ([shift={(base)}] 11.65,-0.3) circle (0.15cm);
\node at ([shift={(base)}]10.8,-0.3) {E};
\draw[line width=1pt] ([shift={(base)}] 11,-1.1) -- ++(0,-0.2) -- ++(0.5,0);
\draw[line width=1pt] ([shift={(base)}] 11.65,-1.3) circle (0.15cm);
\node at ([shift={(base)}]10.8,-1.3) {F};
\draw[line width=1pt] ([shift={(base)}] 15,-0.4) -- ++(0,0.2) -- ++(-0.5,0);
\draw[line width=1pt] ([shift={(base)}] 14.35,-0.2) circle (0.15cm);
\draw[line width=1pt] ([shift={(base)}] 15,-0.1) -- ++(0,0.2) -- ++(-0.3,0);
\draw[line width=1pt] ([shift={(base)}] 14.7,0.1) -- ++(-0.2,0.15) -- ++(0,-0.3) -- cycle;
\node at ([shift={(base)}]15.2,-0.1) {G};
% direction management
\draw ([shift={(base)}] -0.45,0.6) rectangle ++(0.9,0.3);
\draw ([shift={(base)}] 0.3,0.75) -- ++(-0.2,0.1) -- ++(0,-0.2) -- cycle;
\draw ([shift={(base)}] -0.3,0.75) -- ++(0.2,0.1) -- ++(0,-0.2) -- cycle;
\draw ([shift={(base)}] 15.55,-0.4) rectangle ++(0.9,0.3);
\draw ([shift={(base)}] 16.3,-0.25) -- ++(-0.2,0.1) -- ++(0,-0.2) -- cycle;
\draw ([shift={(base)}] 15.7,-0.25) -- ++(0.2,0.1) -- ++(0,-0.2) -- cycle;
\draw [->] ([shift={(base)}] 15.5,1.25) -- ++(0.5,-1.2) node [near start,align=right,fill=white] {
\IfLanguage{english}{direction management}
\IfLanguage{ngerman}{Richtungsverwaltung}
};
% clearing point
\draw[line width=1pt] ([shift={(base)}] 3,0) -- ++(0,-0.1);
\draw[line width=1pt,fill=white] ([shift={(base)}] 2.95,-0.1) rectangle ++(0.1,-0.1);
\draw [->] ([shift={(base)}] 2.4,-1.5) -- ++(0.5,1.3) node [at start,align=right,fill=white] {
\IfLanguage{english}{block clearing point}
\IfLanguage{ngerman}{Signalzugschlussstelle}
};
\draw[line width=1pt] ([shift={(base)}] 3,0.5) -- ++(0,0.1);
\draw[line width=1pt,fill=white] ([shift={(base)}] 3,0.65) circle (0.05cm);
\draw[line width=1pt] ([shift={(base)}] 4,0.5) -- ++(0,0.1);
\draw[line width=1pt,fill=white] ([shift={(base)}] 3.95,0.6) rectangle ++(0.1,0.1);
\draw[line width=1pt] ([shift={(base)}] 4,0) -- ++(0,-0.1);
\draw[line width=1pt,fill=white] ([shift={(base)}] 4,-0.15) circle (0.05cm);
\draw[line width=1pt] ([shift={(base)}] 5,1.5) -- ++(0,-0.1);
\draw[line width=1pt,fill=white] ([shift={(base)}] 5,1.35) circle (0.05cm);
\draw[line width=1pt] ([shift={(base)}] 5,0) -- ++(0,-0.1);
\draw[line width=1pt,fill=white] ([shift={(base)}] 5,-0.15) circle (0.05cm);
\draw[line width=1pt] ([shift={(base)}] 4.8,-0.7) -- ++(-0.1,-0.1);
\draw[line width=1pt,fill=white] ([shift={(base)}] 4.7,-0.8) circle (0.05cm);
\draw [->] ([shift={(base)}] 4.1,-2.3) -- ++(0.5,1.3) node [at start,align=right,fill=white] {
\IfLanguage{english}{route clearing point}
\IfLanguage{ngerman}{Fahrstraßenzugschlussstelle}
};
\draw[line width=1pt] ([shift={(base)}] 12.2,0.2) -- ++(0.1,0.1);
\draw[line width=1pt,fill=white] ([shift={(base)}] 12.3,0.3) circle (0.05cm);
\draw[line width=1pt] ([shift={(base)}] 12,-0.5) -- ++(0,0.1);
\draw[line width=1pt,fill=white] ([shift={(base)}] 12,-0.35) circle (0.05cm);
\draw[line width=1pt] ([shift={(base)}] 13,-0.5) -- ++(0,0.1);
\draw[line width=1pt,fill=white] ([shift={(base)}] 12.95,-0.4) rectangle ++(0.1,0.1);
\draw[line width=1pt] ([shift={(base)}] 13,-1) -- ++(0,-0.1);
\draw[line width=1pt,fill=white] ([shift={(base)}] 12.95,-1.1) rectangle ++(0.1,-0.1);
\draw[line width=1pt] ([shift={(base)}] 13,-1.2) -- ++(0,-0.1);
\draw[line width=1pt,fill=white] ([shift={(base)}] 13,-1.35) circle (0.05cm);
\end{scope}

Binary file not shown.

View File

@ -0,0 +1,18 @@
%!TEX TS-program = pdflatexmk
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\documentclass[tikz,border=2,preview=true]{standalone}
\usepackage[prefix=]{xcolor-solarized}
\usepackage[main=english,ngerman]{babel}
\usepackage{iflang} % needs babel
\newcommand{\IfLanguage}[2]{\IfLanguageName{#1}{#2}{}}
\usepackage{lmodern,microtype,mathptmx,courier}
\begin{document}
\begin{tikzpicture}[font=\sffamily]
\input{tutorial_trainrun_setup.tikz}
\end{tikzpicture}
\end{document}

View File

@ -0,0 +1,36 @@
%!TEX TS-program = pdflatexmk
%!TEX root = tutorial_trainrun_setup.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\begin{scope}[>=latex]
\coordinate (base) at (0,0);
\draw [dotted] ([shift={(base)}] 5,0) rectangle ++(1,0.5);
\foreach \x in {1,2,3,4,6,7,8,9}
\draw ([shift={(base)}] \x,0) rectangle ++(1,0.5);
\node at ([shift={(base)}] 1.5,0.25) {-2};
\node at ([shift={(base)}] 2.5,0.25) {-1};
\node at ([shift={(base)}] 3.5,0.25) {0};
\node at ([shift={(base)}] 4.5,0.25) {1};
\node at ([shift={(base)}] 6.5,0.25) {10};
\node at ([shift={(base)}] 7.5,0.25) {11};
\node at ([shift={(base)}] 8.5,0.25) {12};
\node at ([shift={(base)}] 9.5,0.25) {13};
\draw[|<->|,>=latex,shorten >=2,shorten <=2] ([shift={(base)}] 4,0.85) -- ++(3,0) node[midway,fill=white] {10};
\draw[line width=1pt, fill=white] ([shift={(base)}] 3.9,0.25) -- ++(-0.2,-0.2) -- ++(-1.7,0) -- ++(0,0.4) -- ++(1.7,0) -- cycle; % train
\draw ([shift={(base)}] 2,1.1) -- ++(0,-0.4) -- ++ (2,0) -- ++(0,0.4);
\draw ([shift={(base)}] 2,0.8) -- ++ (2,0) node [above,midway] {
\IfLanguage{english}{\footnotesize platform A}
\IfLanguage{ngerman}{\footnotesize Bahnsteig A}
};
\draw ([shift={(base)}] 7,1.1) -- ++(0,-0.4) -- ++ (2,0) -- ++(0,0.4);
\draw ([shift={(base)}] 7,0.8) -- ++ (2,0) node [above,midway] {
\IfLanguage{english}{\footnotesize platform B}
\IfLanguage{ngerman}{\footnotesize Bahnsteig B}
};
\end{scope}

View File

@ -6,6 +6,9 @@
\vspace*{\fill}
\IfLanguage{english}{\noindent\large Version \vhCurrentVersion\ from \vhCurrentDate}
\IfLanguage{ngerman}{\noindent\large Version \vhCurrentVersion\ vom \vhCurrentDate}\\[0.3cm]
\IfLanguage{english}{
\ccLogo \ccAttribution ~This work is licensed under a Creative Commons License (CC BY 4.0).
}

View File

@ -1,37 +0,0 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\chapter*{\IfLanguage{english}{Aim and Materials}\IfLanguage{ngerman}{Ziel und Materialien}}
\noindent
\IfLanguage{english}{The aim of the learning game is to simulate and experience the driving dynamics of trains in the context of block division. This requires:}
\IfLanguage{ngerman}{Ziel des Lernspieles ist die Fahrdynamik von Zügen im Zusammenhang mit Blockteilung zu simulieren und zu erfahren. Dafür wird benötigt:}
\begin{itemize}
\IfLanguage{english}{
\item two trains with different driving dynamics
\item a track consisting of spaces
\item train berths
\item signals for block division
\item if necessary, turnouts
}
\IfLanguage{ngerman}{
\item zwei Züge mit unterschiedlicher Fahrdynamik
\item eine Strecke, bestehend aus Spielfeldern
\item Halteplätze für die Züge
\item Signale für die Blockteilung
\item ggf. Weichen
}
\end{itemize}
\IfLanguage{english}{Real continuous dimensions time ($t$) and distance ($s$) are assigned to discrete units of laps ($t$) and spaces ($s$).
Thus, the simulation is round-based in order to imitate the steps of a computer.}
\IfLanguage{ngerman}{Reale kontinuierliche Größen Zeit ($t$) und Strecke ($s$) werden dabei in diskrete Einheiten von Runden ($t$) und Felder ($s$) eingeteilt.
Die Simulation erfolgt also Rundenbasiert, um im Schrittverfahren einen Computer nachzuahmen.}
\vspace*{\fill}
\IfLanguage{english}{\noindent\large Version \vhCurrentVersion\ from \vhCurrentDate}
\IfLanguage{ngerman}{\noindent\large Version \vhCurrentVersion\ vom \vhCurrentDate}\\[0.3cm]
\input{\ROOT/frontmatter/copyright.tex}

View File

@ -7,18 +7,24 @@
\begin{titlepage}
%--------------------------------------------
\thispagestyle{empty}
\centering
\vspace*{\fill}
\begin{center}
\bfseries\Huge Edugame Railway Operations
\end{center}
\bfseries\Huge Edugame Railway Operations
\vspace*{\fill}
\includegraphics[keepaspectratio,width=0.3\textwidth]{../logo/logo.pdf}
\vspace*{\fill}
\vspace*{\fill}
\vspace*{\fill}
{\centering \IfLanguage{english}{``Gaming is an activity that cannot be taken seriously enough!''}\IfLanguage{ngerman}{``Spielen ist eine Tätigkeit, die man garnicht ernst genug nehmen kann!''} \\
\flushright \emph{Jacques-Yves Cousteau}\par}
\normalfont\normalsize
\IfLanguage{english}{``Gaming is an activity that cannot be taken seriously enough!''}
\IfLanguage{ngerman}{``Spielen ist eine Tätigkeit, die man garnicht ernst genug nehmen kann!''} \\
\flushright \emph{Jacques-Yves Cousteau}\par
\vspace*{\fill}

Binary file not shown.

View File

@ -46,11 +46,9 @@
\pagestyle{scrheadings}
\usepackage{framed}
\usepackage{etoolbox}
\makeatletter
% \@addtoreset{chapter}{part} % reset chapter numbering for each part
\patchcmd{\scr@startchapter}{\if@openright\cleardoublepage\else\clearpage\fi}{}{}{} % remove page break after chapter
\makeatother
% -------[ Symbols ]---------
\usepackage{amsmath,amsthm}
@ -72,6 +70,7 @@
\usepackage{enumitem} % change numbering
\usepackage{tikz,adjustbox}
\usetikzlibrary{babel}
\usetikzlibrary{shapes.geometric}
% -------[ costum commands ]---------
\newcommand{\TODO}[1]{\todo[linecolor=orange,backgroundcolor=orange!20,bordercolor=orange,inline,]{\textcolor{orange}{Todo:~}#1}}
@ -81,6 +80,9 @@
\newcounter{task}[chapter] % reset couter <<task>> with each new chapter
\DeclareRobustCommand{\task}{\stepcounter{task}\bigskip\par\noindent{\normalfont\large\bfseries\IfLanguage{english}{Task~}\IfLanguage{ngerman}{Aufgabe~}\arabic{chapter}.\arabic{task}}\medskip\par\noindent}
\DeclareRobustCommand{\setup}{\bigskip\par\noindent{\normalfont\large\bfseries\IfLanguage{english}{Setup}\IfLanguage{ngerman}{Ausgangssituation}}\medskip\par\noindent}
\DeclareRobustCommand{\roles}{\bigskip\par\noindent{\normalfont\large\bfseries\IfLanguage{english}{Roles}\IfLanguage{ngerman}{Rollen}}\medskip\par\noindent}
\DeclareRobustCommand{\material}{\bigskip\par\noindent{\normalfont\large\bfseries\IfLanguage{english}{Material}\IfLanguage{ngerman}{Material}}\medskip\par\noindent}
\DeclareRobustCommand{\phase}[1]{\noindent{\normalfont\itshape\IfLanguage{english}{Phase #1:}\IfLanguage{ngerman}{Phase #1:~}}}
\DeclareRobustCommand{\tikzfigure}[2][0.995\textwidth]{
\begin{adjustbox}{width=#1}

View File

@ -4,7 +4,7 @@
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\documentclass[
draft,
% draft,
paper=a4,
version=3.25,
pagesize=pdftex,
@ -28,21 +28,40 @@
\begin{document}
\selectlanguage{english} % currently supported: english, ngerman
\selectlanguage{ngerman} % currently supported: english, ngerman
\input{\ROOT/frontmatter/titlepage.tex}
\tableofcontents
\input{\ROOT/frontmatter/copyright.tex}
\cleardoublepage
\input{\ROOT/frontmatter/preambel.tex}
\chapter{Fahrdynamik}
\input{\ROOT/tutorial/aim.tex}
\input{\ROOT/tutorial/trainrun_de.tex}
\cleardoublepage
\input{\ROOT/tasks/runningtime_de.tex}
\cleardoublepage
\input{\ROOT/tasks/viewpoint_de.tex}
\cleardoublepage
\chapter{Zugfolgesicherung}
\input{\ROOT/tutorial/followprotection_de.tex}
\cleardoublepage
\input{\ROOT/tasks/blocksection_de.tex}
\cleardoublepage
\input{\ROOT/tasks/trafficflow_de.tex}
\input{\ROOT/tutorial/manual.tex}
\chapter{Fahrwegsicherung }
\input{\ROOT/tutorial/routeprotection_de.tex}
\cleardoublepage
\input{\ROOT/tasks/routes_de.tex}
\cleardoublepage
\input{\ROOT/tasks/overlap_de.tex}
\cleardoublepage
\input{\ROOT/tasks/selectiveprotectivepoints_de.tex}
\chapter{Betriebsplanung und -steuerung}
\input{\ROOT/tasks/network_de.tex}
% \setcounter{chapter}{0}
\input{\ROOT/tasks/challenges.tex}
\cleardoublepage
\appendix

Binary file not shown.

View File

@ -23,7 +23,7 @@
\IfLanguage{english}{\Large route locking matrix}
\IfLanguage{ngerman}{\Large Verschlussplan}
\\\normalsize
\tikzfigure[0.8\linewidth]{challenge3_layout2.tikz}
\tikzfigure[0.8\linewidth]{route_locking_matrix.tikz}
\vfil
\input{\ROOT/tables/route_locking_matrix.tex}
Legende: R -- Rechtslage, L -- Linkslage, X -- Verschlossen.

View File

@ -3,23 +3,28 @@
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\IfLanguage{english}{Sequence per round:
% \IfLanguage{english}{Sequence per round:
% \begin{enumerate}
% \item calling of routes (optional)
% \item Set signals to CLEAR (optional)
% \item Select control lever position (optional)
% \item \emph{move all trains according to the control lever position!}
% \item \emph{Execute stop case for signals!}
% \item release of routes (optional)
% \end{enumerate}
% }
% \IfLanguage{ngerman}{Ablauf pro Runde:
\begin{enumerate}
\item calling of routes (optional)
\item Set signals to CLEAR (optional)
\item Select control lever position (optional)
\item \emph{move all trains according to the control lever position!}
\item \emph{Execute stop case for signals!}
\item release of routes (optional)
\item Fahrstraße sichern
\begin{enumerate}[a)]
\item Weichen im befahrenen Teil der Fahrstraße einstellen und sichern
\item Flankenschutz herstellen
\item Durchrutschweg sichern
\end{enumerate}
\item Signale auf Fahrt stellen
\item Schalthebelposition ändern (Beschleunigen/Bremsen)
\item Züge bewegen
\item Haltfall von Signalen ausführen
\item Fahrstraßen auflösen
\end{enumerate}
}
\IfLanguage{ngerman}{Ablauf pro Runde:
\begin{enumerate}
\item Fahrstraßen bilden (optional)
\item Signale auf Fahrt stellen (optional)
\item Schalthebelposition wählen (optional)
\item \emph{alle Züge entsprechend der Schalthebelposition bewegen!}
\item \emph{Haltfall von Signalen ausführen!}
\item Fahrstraßen auflösen (optional)
\end{enumerate}
}
% }

View File

@ -28,7 +28,7 @@
\begin{document}
\selectlanguage{english} % currently supported: english, ngerman
\selectlanguage{ngerman} % currently supported: english, ngerman
\input{\ROOT/frontmatter/titlepage.tex}

View File

@ -0,0 +1,31 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\section{Blockteilung}
\roles
\begin{itemize}
\item Spielleiter
\item Infrastrukturplaner
\end{itemize}
\material
\begin{itemize}
\item Gleise
\item drei vollständige Blöcke mit Vorsignal, Hauptsignal und Signalzugschlusstelle
\item beliebiger Zug mit zugehörigen Fahrdynamikmodell, Zugschluss- und -spitzensignal
\end{itemize}
\setup
Es soll eine Strecke geplant werden, auf der mit Blocklogik mehrere Züge verkehren können.
\task
\begin{enumerate}[label=\alph*)]
\item Platziert die Vorsignale, Hauptsignale und Signalzugschlussstellen so, dass verschiedene Züge verkehren können und ohne dass schlechte Sichtverhältnisse zu Beeinträchtigungen führen.
\item Was ist hierfür der minimale und was ist der maximale Blockabstand?
\item Was passiert, wenn Ihr den minimalen Blockabstand unterschreitet?
\item Wie viele Runden dauert die vollständige Sperrzeit für die Fahrt durch einen beliebigen Blockabschnitt (Sichtzeit, Annäherungszeit, Fahrzeit im Block, Räumfahrzeit)?
\end{enumerate}

View File

@ -1,249 +0,0 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\part{\IfLanguage{english}{Challenges}\IfLanguage{ngerman}{Aufgaben}}
\chapter{\IfLanguage{english}{First Stage}\IfLanguage{ngerman}{Erste Stufe}}
\section{\IfLanguage{english}{Introduction to Driving Dynamics}\IfLanguage{ngerman}{Einführung Fahrdynamik}}
\setup
\IfLanguage{english}{A train is to run on a single track. You need:}
\IfLanguage{ngerman}{Auf einem Gleis soll ein beliebiger Zug verkehren, mit:}
\begin{itemize}
\IfLanguage{english}{
\item infrastructure as shown below
\item train on field $0$ towards $39$.
}
\IfLanguage{ngerman}{
\item Infrastruktur wie unten abgebildet
\item der Zug steht auf Feld $0$ in Richtung $39$
}
\end{itemize}
\tikzfigure{challenge1_setup.tikz}
\task
\IfLanguage{english}{The train stands still and has its control-lever at \SI{0}{\kilo\metre\per\hour}.}
\IfLanguage{ngerman}{Der Zug steht und hat seinen Schalthebel auf \SI{0}{\kilo\metre\per\hour}.}
\begin{enumerate}[label=\alph*)]
\IfLanguage{english}{
\item If the train accelerates as much as possible, where can it get in \emph{nine} laps?
\item How many laps are needed minimally, if the train stops at every platform?
}
\IfLanguage{ngerman}{
\item Wenn der Zug maximal beschleunigt, bis zu welchen Feld gelangt er in \emph{neun} Runden?
\item Wie viele Runden benötigt man minimal, wenn der Zug an jedem Bahnsteig halten soll?
}
\end{enumerate}
\IfLanguage{english}{The train passes the first platform and has its control-lever on maximum speed.}
\IfLanguage{ngerman}{Der Zug fährt gerade am Bahnsteig A vorbei und hat seinen Schalthebel auf der maximalen Geschwindigkeit.}
\begin{enumerate}[label=\alph*),resume]
\IfLanguage{english}{
\item How many laps are needed if the train shall leave the track completely without stopping?
}
\IfLanguage{ngerman}{
\item Wie viele Runden benötigt man, wenn der Zug ohne Halt die Strecke vollständig verlassen soll?
}
\end{enumerate}
\IfLanguage{english}{Note the solution steps in a protocol!}
\IfLanguage{ngerman}{Notiere die Lösungschritte in einem Protokoll!}
\newpage
\section{\IfLanguage{english}{Visibility and Braking Distance}\IfLanguage{ngerman}{Sicht- und Bremsweg}}
\setup
\IfLanguage{english}{Unknown line with different visibility conditions:}
\IfLanguage{ngerman}{Unbekannte Strecke mit verschiedenen Sichtverhältnissen:}
\\[0.5cm]
\input{\ROOT/tables/visibility_conditions.tex}
\task
\begin{enumerate}[label=\alph*)]
\IfLanguage{english}{
\item What is the maximum speed for a train in order to stop in front of an obstacle with very good visibility?
\item How many laps does it take to get safely into a $12$ fields away station under normal visibility conditions?
\item How far (in fields) would you have to be able to see in order to drive \SI{160}{\kilo\metre\per\hour}?
}
\IfLanguage{ngerman}{
\item Wie schnell kann der Zug bei sehr gutem Sichtverhältnis maximal Fahren um vor einem Hindernis rechtzeitig anzuhalten?
\item Wie viele Runden benötigt man minimal, um gefahrlos bei normalen Sichtverhältnissen in einem $12$ Felder entfernten Bahnhof zu gelangen?
\item Wie viele Felder weit müsste man sehen können, um \SI{160}{\kilo\metre\per\hour} fahren zu können?
}
\end{enumerate}
\newpage
\chapter{\IfLanguage{english}{Second Stage}\IfLanguage{ngerman}{Zweite Stufe}}
\section{\IfLanguage{english}{Block Segmentation}\IfLanguage{ngerman}{Blockteilung}}\label{sec:Blockteilung}
\setup
\IfLanguage{english}{Different trains should be able to run consecutively on a track with block logic! You need:}
\IfLanguage{ngerman}{Auf einer Strecke sollen mit Blocklogik verschiedene Züge verkehren können! Dafür wird benötigt:}
\begin{itemize}
\IfLanguage{english}{
\item a track of any length,
\item 3 complete blocks with distant signal, main signal and a block clearing point,
\item at least one train.
}
\IfLanguage{ngerman}{
\item eine beliebig lange Strecke,
\item 3 vollständige Blöcke mit Vorsignal, Hauptsignal und Signalzugschlussstelle,
\item mindestens ein Zug.
}
\end{itemize}
\task
\begin{enumerate}[label=\alph*)]
\IfLanguage{english}{
\item Place distant signals, main signals, and block clearing points in such a way that bad visibility does not lead to impairment and trains can run with \SI{160}{\kilo\metre\per\hour}!
\item What is the minimum and maximum block distance?
\item What happens if the distance of the main signals are less than the minimum block distance?
\item How many laps does the blocking time for running through a block last (signal watch time, approach time, time between block signals, clearing time)?
}
\IfLanguage{ngerman}{
\item Platziere die Vorsignale, Hauptsignale und Signalzugschlussstelle so, dass \SI{160}{\kilo\metre\per\hour} gefahren werden kann und schlechte Sichtverhältnisse nicht zur Beeinträchtigung führt!
\item Was ist der minimale und was ist der maximale Blockabstand?
\item Was passiert, wenn man den minimalen Blockabstand unterschreitet?
\item Wie viele Runden dauert die vollständige Sperrzeit für die Fahrt durch einen Block (Sichtzeit, Annährungszeit, Fahrzeit im Block, Räumzeit)?
}
\end{enumerate}
\newpage
\section{\IfLanguage{english}{Traffic Flow}\IfLanguage{ngerman}{Verkehrsfluss}}
\setup
\IfLanguage{english}{Different trains should be able to run consecutively on a track with block logic! You need:}
\IfLanguage{ngerman}{Auf einer Strecke sollen mit Blocklogik verschiedene Züge verkehren! Dafür wird benötigt:}
\begin{itemize}
\IfLanguage{english}{
\item Two different trains with different train dynamics,
\item The track from section \ref{sec:Blockteilung}.
}
\IfLanguage{ngerman}{
\item zwei Züge mit verschiedener Fahrdynamik,
\item die Strecke aus Abschnitt \ref{sec:Blockteilung}.
}
\end{itemize}
\IfLanguage{english}{Trains enter the system at the beginning of the track; trains exit the system at the end of the track. The infrastructure before and after the line is neglected.}
\IfLanguage{ngerman}{Am Anfang der Strecke brechen Züge ein; am Ende der Strecke brechen Züge aus. Die Infrastruktur vor und nach der Strecke wird vernachlässigt.}
\task
\begin{enumerate}[label=\alph*)]
\IfLanguage{english}{
\item How many laps are needed from the first train entering to the second train leaving if both trains are to run unimpeded and the \emph{fast} runs in front of the \emph{slow} train?
\item How many laps are needed from the first train entering to the second train leaving if both trains are to run unimpeded and the \emph{slow} runs in front of the \emph{fast} train?
}
\IfLanguage{ngerman}{
\item Wie viele Runden werden benötigt vom Einbruch des ersten Zuges bis zum verlassen des zweiten Zuges, wenn beide Züge behinderungsfrei fahren sollen und der \emph{schnelle} vor dem \emph{langsamen} Zug fährt?
\item Wie viele Runden werden benötigt vom Einbruch des ersten Zuges bis zum verlassen des zweiten Zuges, wenn beide Züge behinderungsfrei fahren sollen und der \emph{langsame} vor dem \emph{schnellen} Zug fährt?
}
\end{enumerate}
\newpage
\chapter{\IfLanguage{english}{Third Stage}\IfLanguage{ngerman}{Dritte Stufe}}
\section{\IfLanguage{english}{Route Locking}\IfLanguage{ngerman}{Fahrstraßenverschluss und -festlegung}}
\setup
\IfLanguage{english}{The sequence of trains between two stations with turnouts should be examined! You need:}
\IfLanguage{ngerman}{Die Zugfolge zwischen zwei Bahnhöfen mit Weichen soll betrachtet werden! Dafür wird benötigt:}
\begin{itemize}
\IfLanguage{english}{
\item Infrastructure as shown below with at least \emph{two} complete blocks,
\item Two different trains with different vehicle dynamics in station A.
}
\IfLanguage{ngerman}{
\item Infrastruktur wie unten abgebildet mit mindestens \emph{zwei} vollständigen Blöcke,
\item zwei Züge mit verschiedener Fahrdynamik im Bahnhof A.
}
\end{itemize}
\begin{center}
\tikzfigure[0.7\textwidth]{challenge3_setup1.tikz}
\end{center}
\IfLanguage{english}{The turnouts may only be passed at \SI{80}{\kilo\metre\per\hour} along the branching track. The speed in the straight track is not limited.}
\IfLanguage{ngerman}{Die Weichen dürfen im abzweigenden Strang jeweils nur mit \SI{80}{\kilo\metre\per\hour} befahren werden. Im durchgehenden Strang ist die Geschwindigkeit nicht begrenzt.}\\[0.25cm]
\task
\begin{enumerate}[label=\alph*)]
\IfLanguage{english}{
\item Complete the infrastructure with distant signals, block signals, route signals, block clearing points and route clearing points!
\item Pick a train to leave and explain why not the other one!
\item How many laps does it take for the second train to depart?
\item How many laps does it take for both trains (sum of the laps of train 1 and train 2) to arrive at the destination station?
}
\IfLanguage{ngerman}{
\item Ergänze die Infrastruktur mit Vorsignalen, Blocksignalen, Fahrstraßensignalen, Signalzugschlussstellen und Fahrstraßenzugschlussstellen!
\item Wähle den Zug aus, der als erster abfahren soll und begründe!
\item Wie viele Runden dauert es bis der zweite Zug abfahren kann?
\item Wie viele Runden dauert es bis beide Züge (Summe der Runden von Zug 1 und Zug 2) im Zielbahnhof angekommen sind?
}
\end{enumerate}
\newpage
\section{\IfLanguage{english}{Overlap}\IfLanguage{ngerman}{Durchrutschweg}}
\setup
\IfLanguage{english}{Two trains are too cross in a station! You need:}
\IfLanguage{ngerman}{In einem Bahnhof sollen sich zwei Züge kreuzen! Dafür wird benötigt:}
\begin{itemize}
\IfLanguage{english}{
\item Infrastructure as shown below with at least \emph{two} complete blocks,
\item two different trains with different vehicle dynamics running at maximum speed,
\item train 1 runs non-stop; train 2 has a service stop of 2 laps at the station.
}
\IfLanguage{ngerman}{
\item Infrastruktur wie unten abgebildet,
\item zwei Züge mit verschiedener Fahrdynamik in Fahrt mit maximaler Geschwindigkeit,
\item Zug 1 fährt ohne Halt durch; Zug 2 hat einen Verkehrshalt von 2 Runden im Bahnhof
}
\end{itemize}
\begin{center}
\tikzfigure{challenge3_setup2.tikz}
\end{center}
\IfLanguage{english}{The turnouts may be passed at \SI{80}{\kilo\metre\per\hour} at the branching track. The overlap requires 2 fields.}
\IfLanguage{ngerman}{Die Weichen dürfen im abzweigenden Strang mit \SI{80}{\kilo\metre\per\hour} befahren werden. Der Durchrutschweg beträgt 2 Felder.}\\[0.25cm]
\task
\begin{enumerate}[label=\alph*)]
\IfLanguage{english}{
\item Complete the infrastructure with distant signals, block signals, route signals, block clearing points and route clearing points!
\item Decide which train to run on which track. Which problems can occur?
\item After how many laps did train 2 stop at the station?
\item After how many laps did train 1 leave the station completely?
\item Make a locking plan of the station!
}
\IfLanguage{ngerman}{
\item Ergänze die Infrastruktur mit Vorsignalen, Signalzugschlussstellen und Fahrstraßenzugschlussstellen!
\item Entscheide begründet welcher Zug auf welches Gleis fahren soll. Welche Probleme können auftreten?
\item Nach wie viel Runden ist Zug 2 im Bahnhof zum stehen gekommen?
\item Nach wie viel Runden hat Zug 1 den Bahnhof vollständig verlassen?
\item Fertige vom Bahnhof einen Verschlussplan an!
}
\end{enumerate}
\newpage
\section{\IfLanguage{english}{Dual protection points}\IfLanguage{ngerman}{Zwieschutzweiche}}
\setup
\IfLanguage{english}{Trains meet in a station with a dual protection points. You need:}
\IfLanguage{ngerman}{In einem Bahnhof mit Zwieschutzweiche begegenen sich Züge. Dafür wird benötigt:}\\[0.25cm]
\begin{itemize}
\IfLanguage{english}{
\item Infrastructure as shown below (right-hand traffic),
\item three trains: train 1 and 2 standing; train 3 running at maximum speed.
}
\IfLanguage{ngerman}{
\item Infrastruktur wie unten abgebildet (Rechtsfahrbetrieb)
\item drei Züge: Zug 1 und 2 stehen; Zug 3 fährt mit maximaler Geschwindigkeit
}
\end{itemize}
\begin{center}
\tikzfigure{challenge3_setup3.tikz}
\end{center}
\task
\begin{enumerate}[label=\alph*)]
\IfLanguage{english}{
\item Lock the route for train 1!
\item Lock the route for train 3!
\item Lock the route for train 2 after train 1 has left the station. What is the problem? How can it be solved?
}
\IfLanguage{ngerman}{
\item Sichere die Ausfahrstraße für Zug 1!
\item Sichere die Einfahrstraße für Zug 3!
\item Sichere die Fahrstraße für Zug 2, nachdem Zug 1 ausgefahren ist. Welches Problem tritt auf? Wie kann es gelöst werden?
}
\end{enumerate}

View File

@ -0,0 +1,56 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\roles
\begin{itemize}
\item Spielleiter (1-3)
\item Disponent (1-3)
\item Fahrdienstleiter (ca. 2-5)
\item Triebfahrzeugführer (7)
\end{itemize}
Der Disponent (oder das entsprechende Team) geben Anweisungen an die Fahrdienstleiter in welcher Reihenfolge und über welche Gleise die Züge verkehren sollen.
\material
\begin{itemize}
\item fünf vollständige Sets
\item Züge entsprechend dem Fahrplankonzept
\end{itemize}
\setup
Es ist ein Gebiet mit Verkehrsstationen und dem dargestellten Fahrplankonzept gegeben. Jede Linie entspricht einem Zugpaar.\\[0.5cm]
\tikzfigure{challenge4_setup.tikz}
\begin{itemize}
\item Ein Unterwegshalt muss an einem Bahnsteig der entsprechenden Länge stattfinden
\item Ein Wendehalt muss an einem Bahnsteig der entsprechenden Länge stattfinden.
\item Das Ein- und Ausbrechen der Züge geschieht am Gleisende über Auffahrrampen.
\item Das Wenden mit Abräumen entspricht einer Fahrt in und aus dem Anschluss (Rampe am Gleisende).
\end{itemize}
\task
\emph{Infrastrukturgestaltung}: Zunächst ist die gesamte Eisenbahninfrastruktur zu entwerfen und zu errichten:
\begin{enumerate}[label=\alph*)]
\item Die Verkehrsstationen können beliebige Betriebsstellen sein, welche die Ausführung der entsprechenden Funktion (Unterwegshalt, Wendehalt oder Anschlussbedienung) ermöglichen.
\item Die Strecken zwischen den Verkehrsstationen können ein- oder zweigleisig sein.
\item Streckenverzweigungen sind entweder in den Knotenbahnhöfen oder auf der freien Strecke in Form von Abzweigstellen möglich.
\item Der Abstand der Verkehrsstationen ist nicht konkret vorgegeben. Er sollte jedoch immer mindestens einem ganzen Blockabschnitt entsprechen.
\end{enumerate}
Ziel ist es jedes Zugpaar einmal fahren zu lassen, hierbei möglichst wenige Runden zu benötigen und gleichfalls sparsam mit den begrenzten Infrastrukturelementen (insbesondere Weichen, Signale und mehrgleisige Abschnitte) umzugehen.
Weitere Randbedingungen:
\begin{itemize}
\item Weichen können mit max. 80 km/h im abzweigenden Strang befahren werden.
\item Vorsignale müssen jeweils im Bremswegabstand der verkehrenden Züge gesetzt werden.
\end{itemize}
\task
\emph{Startpunkt der Zugpaare festlegen}: Legt gemeinsam für jedes Zugpaar einen Startpunkt fest. Diese kann entweder eine Verkehrsstation mit einer Wende oder eine der Einbruchsstellen sein. Stellt die Züge hierzu bei einer Einbruchsstelle in der vorgesehenen Reihenfolge vor die entsprechende Rampe. Bei Einem Start an einer Wendestelle werden Personenzüge an den entsprechenden Bahnsteig und Güterzüge vor die Rampe der Anschlussstelle gestellt.
\task
\emph{Fahrbetrieb}: Beginnt nun damit den Fahrbetrieb durchzuführen. Die Regeln hierzu habt Ihr in den vorangegangenen Tutorials und Aufgaben gelernt. Jeder soll hierbei primär seine Rolle ausführen. Es ist aber natürlich erlaubt, sich gegenseitig zu beraten. Achtet nur darauf den Runden- und Phasenablauf insgesamt einzuhalten. Hierfür sind vor allem die Spielleiter verantwortlich.

View File

@ -0,0 +1,37 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\section{Durchrutschweg Aufgaben}
\roles
\begin{itemize}
\item Spielleiter
\item Triebfahrzeugführer eines beliebigen Zuges
\item Triebfahrzeugführer eines anderen beliebigen Zuges
\item Fahrdienstleiter
\end{itemize}
\material
\begin{itemize}
\item Gleise
\item Weichen
\item Signale und Zugschlusstellen
\item zwei beliebige Züge mit zugehörigen Fahrdynamikmodell, Zugschluss- und -spitzensignal
\end{itemize}
\setup
\tikzfigure{challenge3_setup2.tikz}
Beide Züge fahren aktuell mit maximaler Geschwindigkeit. Zug 1 soll im Bahnhof möglichst durchfahren. Zug 2 hat einen Verkehrshalt von 2 Runden Dauer im Bahnhof. Die Weichen dürfen im abzweigenden Strang mit \SI{80}{\kilo\metre\per\hour} befahren werden. Der Durchrutschweg beträgt 2 Felder.
\task
\begin{enumerate}[label=\alph*)]
\item Ergänzt die Infrastruktur mit Vorsignalen, Signalzugschlussstellen und Fahrstraßenzugschlussstellen!
\item Entscheidet begründet welcher Zug auf welches Gleis fahren soll. Welche Probleme können auftreten?
\item Nach wie viel Runden ist Zug 2 im Bahnhof zum Stehen gekommen?
\item Nach wie viel Runden hat Zug 1 den Bahnhof vollständig verlassen?
\item Fertigt vom Bahnhof einen Verschlussplan an!
\end{enumerate}

View File

@ -0,0 +1,39 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\section{Zugfolge mit Fahrstraßen Aufgabe}
\roles
\begin{itemize}
\item Spielleiter
\item Triebfahrzeugführer eines beliebigen Zuges
\item Triebfahrzeugführer eines anderen beliebigen Zuges
\item Fahrdienstleiter
\end{itemize}
\material
\begin{itemize}
\item Gleise
\item Weichen mit
\begin{itemize}
\item Fahrstraßenfelder
\item Fahrstraßenzugschlussstellen
\end{itemize}
\item Mindestens zwei vollständige Blöcke mit Vorsignal, Hauptsignal und Signalzugschlusstelle
\item zwei unterschiedliche Züge mit zugehörigen Fahrdynamikmodell, Zugschluss- und -spitzensignal
\end{itemize}
\setup
\tikzfigure{challenge3_setup1.tikz}
Die beiden Züge Stehen im Bahnhof A und sollen nacheinander in den Bahnhof B fahren. Weiche im abzweigenden Strang dürfen jeweils maximal mit \SI{80}{\kilo\metre\per\hour} befahren werden. Im durchgehenden Strang ist die Geschwindigkeit nicht begrenzt.
\task
\begin{enumerate}[label=\alph*)]
\item Ergänzt die Infrastruktur mit Vorsignalen, Blocksignalen, Fahrstraßensignalen, Signalzugschlussstellen und Fahrstraßenzugschlussstellen!
\item Wählt begründet den Zug aus, der als erster abfahren soll!
\item Wie viele Runden dauert es bis der zweite Zug abfahren kann?
\item Wie viele Runden dauert es bis beide Züge (Summe der Runden von Zug 1 und Zug 2) im Zielbahnhof angekommen sind?
\end{enumerate}

View File

@ -0,0 +1,36 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\section{Fahrzeitberechnung Aufgaben}
\roles
\begin{itemize}
\item Spielleiter
\item Triebfahrzeugführer des Nahverkehrszuges
\end{itemize}
\material
\begin{itemize}
\item Gleise
\item drei Bahnsteige
\item Nahverkehrszug (braun) mit passendem Fahrdynamikmodell, Zugschluss- und -spitzensignal
\end{itemize}
\setup
\tikzfigure{challenge1_setup.tikz}
\task
Der Zug steht auf Feld 0 und sein Schalthebel steht auf \SI{0}{\kilo\metre\per\hour} (0 Felder).
\begin{enumerate}[label=\alph*)]
\item Wenn der Zug maximal beschleunigt, bis zu welchem Feld gelangt er in \emph{neun} Runden?
\item Wie viele Runden benötigt der Zug minimal, wenn er an jedem Bahnsteig für eine Runde anhält?
\end{enumerate}
\setup
Der Zug befindet sich auf Feld 0 und sein Schalthebel steht auf Höchstgeschwindigkeit
\begin{enumerate}[label=\alph*),resume]
\item Wie viele Runden benötigt man, wenn der Zug ohne Halt die Strecke vollständig verlassen soll?
\end{enumerate}

View File

@ -0,0 +1,34 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\section{Zwieschutzweichen Aufgabe}
\roles
\begin{itemize}
\item Spielleiter
\item drei Triebfahrzeugführer
\item Fahrdienstleiter
\end{itemize}
\material
\begin{itemize}
\item Gleise
\item Weichen
\item Signale und Zugschlusstellen
\item drei beliebige Züge mit Fahrbrett, Zugschluss- und -spitzensignal
\end{itemize}
\setup
\tikzfigure{challenge3_setup3.tikz}
Die Züge 1 (Nahverkehrszug) und 2 (Güterzug) stehen im Bahnhof und sollen auf das rechte Streckengleis ausfahren. Zug 3 (Fernverkehrszug) fährt mit maximaler Geschwindigkeit und soll über das freie Gleis weiterfahren.
\task
\begin{enumerate}[label=\alph*)]
\item Ergänzt die Infrastruktur mit Vorsignalen, Signalzugschlussstellen und Fahrstraßenzugschlussstellen!
\item Sichert die Ausfahrstraße für Zug 1!
\item Sichert die Einfahrstraße für Zug 3! Welches Problem tritt auf? Wie kann es gelöst werden?
\item Spielt einige Runden, bis Zug 1 den Spielbereich verlassen hat. Sichert dann die Ausfahrstraße für Zug 2. Welches Problem tritt auf? Wie kann es gelöst werden?
\end{enumerate}

View File

@ -0,0 +1,36 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\section{Verkehrsfluss}
\roles
\begin{itemize}
\item Spielleiter
\item Triebfahrzeugführer eines beliebigen Zuges
\item Triebfahrzeugführer eines anderen beliebigen Zuges
\item Fahrdienstleiter
\end{itemize}
\material
\begin{itemize}
\item Gleise
\item Mindestens drei vollständige Blöcke mit:
\begin{itemize}
\item Vorsignal,
\item Hauptsignal und
\item Signalzugschlusstelle
\end{itemize}
\item zwei beliebige Züge mit zugehörigen Fahrdynamikmodell, Zugschluss- und -spitzensignalen
\end{itemize}
\setup
Die Strecke wird in einer Richtung betrieben. Auf der einen Seite brechen die Züge ein und auf der anderen Seite brechen sie aus. Die Infrastruktur vor und hinter der Strecke wird nicht berücksichtigt.
\task
\begin{enumerate}[label=\alph*)]
\item Wie viele Runden werden benötigt vom Einbruch des ersten Zuges bis zum Verlassen des zweiten Zuges, wenn beide Züge behinderungsfrei fahren sollen und der schnelle vor dem langsamen Zug fährt?
\item Wie viele Runden werden benötigt vom Einbruch des ersten Zuges bis zum Verlassen des zweiten Zuges, wenn beide Züge behinderungsfrei fahren sollen und der langsame vor dem schnellen Zug fährt?
\end{enumerate}

View File

@ -0,0 +1,36 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\section{Sicht- und Bremsweg Aufgaben}
\roles
\begin{itemize}
\item Spielleiter
\item Triebfahrzeugführer des Nahverkehrszuges
\item Saboteur
\end{itemize}
Sonderregeln Saboteur:\\
Der Saboteur schreibt sich je Durchgang das Feld (zwischen Feld 5 und 15) verdeckt auf einen Zettel, auf das er sein Hindernis platzieren möchte. Erst wenn das notierte Feld vom Zug aus sichtbar ist, legt er das Hindernis auf das entsprechende Feld. Ziel des Saboteurs ist es einen Unfall zu provozieren. Wenn der Zug vor dem Hindernis anhält, kann es innerhalb einer Runde entfernt werden.
\material
\begin{itemize}
\item Gleise
\item ein beliebiges Hindernis
\item Nahverkehrszug (braun) mit passendem Fahrdynamikmodell, Zugschluss- und -spitzensignal
\end{itemize}
\setup
Es liegt eine unbekannte Strecke mit verschiedenen Sichtverhältnissen vor Euch:\\
\input{\ROOT/tables/visibility_conditions.tex}\\
Der Nahverkehrszug steht auf Feld 0 und soll möglichst schnell Feld 20 erreichen.
\task
\begin{enumerate}[label=\alph*)]
\item Fahrt einen Durchgang bei sehr guten, einen Durchgang bei normalen und einen Durchgang bei schlechten Sichtverhältnissen. Ihr könnt Eure Rollen zwischen den Runden tauschen. Wie oft habt Ihr einen Unfall? Falls Ihr ankommt, wie viele Runden habt Ihr gebraucht?
\item Wie schnell kann der Zug bei den unterschiedlichen Sichtverhältnissen jeweils fahren, um sicher vor einem Hindernis anhalten zu können?
\item Wie viele Felder weit müsste man sehen können, um bei \SI{160}{\kilo\metre\per\hour} (4 Felder) vor jedem Hindernis sicher anhalten zu können?
\end{enumerate}

BIN
handout/tutorial.pdf Normal file

Binary file not shown.

View File

@ -13,14 +13,14 @@
headinclude=true,
footinclude=false,
toc=listof,
]{scrbook}
]{scrartcl}
\def\ROOT{.}
\usepackage{handbook}
\begin{document}
\selectlanguage{english} % currently supported: english, ngerman
\selectlanguage{ngerman} % currently supported: english, ngerman
\input{\ROOT/frontmatter/titlepage.tex}
@ -31,7 +31,11 @@
\cleardoublepage
\input{\ROOT/tutorial/manual.tex}
\input{\ROOT/tutorial/trainrun_de.tex}
\input{\ROOT/tutorial/followprotection_de.tex}
\input{\ROOT/tutorial/routeprotection_de.tex}
\cleardoublepage
\appendix

16
handout/tutorial/aim.tex Normal file
View File

@ -0,0 +1,16 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
{\bigskip\par\noindent{\huge\bfseries\sffamily\IfLanguage{english}{Aim}\IfLanguage{ngerman}{Ziel}}\medskip\par\noindent}
\noindent
\IfLanguage{english}{The aim of the learning game is to simulate and experience the driving dynamics of trains in the context of block division.
Real continuous dimensions time ($t$) and distance ($s$) are assigned to discrete units of laps ($t$) and spaces ($s$).
Thus, the simulation is round-based in order to imitate the steps of a computer.}
\IfLanguage{ngerman}{Ziel des Lernspieles ist die Fahrdynamik von Zügen im Zusammenhang mit Blockteilung zu simulieren und zu erfahren.
Reale kontinuierliche Größen Zeit ($t$) und Strecke ($s$) werden dabei in diskrete Einheiten von Runden ($t$) und Felder ($s$) eingeteilt.
Die Simulation erfolgt also Rundenbasiert, um im Schrittverfahren einen Computer nachzuahmen.}

View File

@ -1,249 +0,0 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\part{\IfLanguage{english}{Challenges}\IfLanguage{ngerman}{Aufgaben}}
\chapter{\IfLanguage{english}{First Stage}\IfLanguage{ngerman}{Erste Stufe}}
\section{\IfLanguage{english}{Introduction to Driving Dynamics}\IfLanguage{ngerman}{Einführung Fahrdynamik}}
\setup
\IfLanguage{english}{A train is to run on a single track. You need:}
\IfLanguage{ngerman}{Auf einem Gleis soll ein beliebiger Zug verkehren, mit:}
\begin{itemize}
\IfLanguage{english}{
\item infrastructure as shown below
\item train on field $0$ towards $39$.
}
\IfLanguage{ngerman}{
\item Infrastruktur wie unten abgebildet
\item der Zug steht auf Feld $0$ in Richtung $39$
}
\end{itemize}
\tikzfigure{challenge1_setup.tikz}
\task
\IfLanguage{english}{The train stands still and has its control-lever at \SI{0}{\kilo\metre\per\hour}.}
\IfLanguage{ngerman}{Der Zug steht und hat seinen Schalthebel auf \SI{0}{\kilo\metre\per\hour}.}
\begin{enumerate}[label=\alph*)]
\IfLanguage{english}{
\item If the train accelerates as much as possible, where can it get in \emph{nine} laps?
\item How many laps are needed minimally, if the train stops at every platform?
}
\IfLanguage{ngerman}{
\item Wenn der Zug maximal beschleunigt, bis zu welchen Feld gelangt er in \emph{neun} Runden?
\item Wie viele Runden benötigt man minimal, wenn der Zug an jedem Bahnsteig halten soll?
}
\end{enumerate}
\IfLanguage{english}{The train passes the first platform and has its control-lever on maximum speed.}
\IfLanguage{ngerman}{Der Zug fährt gerade am Bahnsteig A vorbei und hat seinen Schalthebel auf der maximalen Geschwindigkeit.}
\begin{enumerate}[label=\alph*),resume]
\IfLanguage{english}{
\item How many laps are needed if the train shall leave the track completely without stopping?
}
\IfLanguage{ngerman}{
\item Wie viele Runden benötigt man, wenn der Zug ohne Halt die Strecke vollständig verlassen soll?
}
\end{enumerate}
\IfLanguage{english}{Note the solution steps in a protocol!}
\IfLanguage{ngerman}{Notiere die Lösungschritte in einem Protokoll!}
\newpage
\section{\IfLanguage{english}{Visibility and Braking Distance}\IfLanguage{ngerman}{Sicht- und Bremsweg}}
\setup
\IfLanguage{english}{Unknown line with different visibility conditions:}
\IfLanguage{ngerman}{Unbekannte Strecke mit verschiedenen Sichtverhältnissen:}
\\[0.5cm]
\input{\ROOT/tables/visibility_conditions.tex}
\task
\begin{enumerate}[label=\alph*)]
\IfLanguage{english}{
\item What is the maximum speed for a train in order to stop in front of an obstacle with very good visibility?
\item How many laps does it take to get safely into a $12$ fields away station under normal visibility conditions?
\item How far (in fields) would you have to be able to see in order to drive \SI{160}{\kilo\metre\per\hour}?
}
\IfLanguage{ngerman}{
\item Wie schnell kann der Zug bei sehr gutem Sichtverhältnis maximal Fahren um vor einem Hindernis rechtzeitig anzuhalten?
\item Wie viele Runden benötigt man minimal, um gefahrlos bei normalen Sichtverhältnissen in einem $12$ Felder entfernten Bahnhof zu gelangen?
\item Wie viele Felder weit müsste man sehen können, um \SI{160}{\kilo\metre\per\hour} fahren zu können?
}
\end{enumerate}
\newpage
\chapter{\IfLanguage{english}{Second Stage}\IfLanguage{ngerman}{Zweite Stufe}}
\section{\IfLanguage{english}{Block Segmentation}\IfLanguage{ngerman}{Blockteilung}}\label{sec:Blockteilung}
\setup
\IfLanguage{english}{Different trains should be able to run consecutively on a track with block logic! You need:}
\IfLanguage{ngerman}{Auf einer Strecke sollen mit Blocklogik verschiedene Züge verkehren können! Dafür wird benötigt:}
\begin{itemize}
\IfLanguage{english}{
\item a track of any length,
\item 3 complete blocks with distant signal, main signal and a block clearing point,
\item at least one train.
}
\IfLanguage{ngerman}{
\item eine beliebig lange Strecke,
\item 3 vollständige Blöcke mit Vorsignal, Hauptsignal und Signalzugschlussstelle,
\item mindestens ein Zug.
}
\end{itemize}
\task
\begin{enumerate}[label=\alph*)]
\IfLanguage{english}{
\item Place distant signals, main signals, and block clearing points in such a way that bad visibility does not lead to impairment and trains can run with \SI{160}{\kilo\metre\per\hour}!
\item What is the minimum and maximum block distance?
\item What happens if the distance of the main signals are less than the minimum block distance?
\item How many laps does the blocking time for running through a block last (signal watch time, approach time, time between block signals, clearing time)?
}
\IfLanguage{ngerman}{
\item Platziere die Vorsignale, Hauptsignale und Signalzugschlussstelle so, dass \SI{160}{\kilo\metre\per\hour} gefahren werden kann und schlechte Sichtverhältnisse nicht zur Beeinträchtigung führt!
\item Was ist der minimale und was ist der maximale Blockabstand?
\item Was passiert, wenn man den minimalen Blockabstand unterschreitet?
\item Wie viele Runden dauert die vollständige Sperrzeit für die Fahrt durch einen Block (Sichtzeit, Annährungszeit, Fahrzeit im Block, Räumzeit)?
}
\end{enumerate}
\newpage
\section{\IfLanguage{english}{Traffic Flow}\IfLanguage{ngerman}{Verkehrsfluss}}
\setup
\IfLanguage{english}{Different trains should be able to run consecutively on a track with block logic! You need:}
\IfLanguage{ngerman}{Auf einer Strecke sollen mit Blocklogik verschiedene Züge verkehren! Dafür wird benötigt:}
\begin{itemize}
\IfLanguage{english}{
\item Two different trains with different train dynamics,
\item The track from section \ref{sec:Blockteilung}.
}
\IfLanguage{ngerman}{
\item zwei Züge mit verschiedener Fahrdynamik,
\item die Strecke aus Abschnitt \ref{sec:Blockteilung}.
}
\end{itemize}
\IfLanguage{english}{Trains enter the system at the beginning of the track; trains exit the system at the end of the track. The infrastructure before and after the line is neglected.}
\IfLanguage{ngerman}{Am Anfang der Strecke brechen Züge ein; am Ende der Strecke brechen Züge aus. Die Infrastruktur vor und nach der Strecke wird vernachlässigt.}
\task
\begin{enumerate}[label=\alph*)]
\IfLanguage{english}{
\item How many laps are needed from the first train entering to the second train leaving if both trains are to run unimpeded and the \emph{fast} runs in front of the \emph{slow} train?
\item How many laps are needed from the first train entering to the second train leaving if both trains are to run unimpeded and the \emph{slow} runs in front of the \emph{fast} train?
}
\IfLanguage{ngerman}{
\item Wie viele Runden werden benötigt vom Einbruch des ersten Zuges bis zum verlassen des zweiten Zuges, wenn beide Züge behinderungsfrei fahren sollen und der \emph{schnelle} vor dem \emph{langsamen} Zug fährt?
\item Wie viele Runden werden benötigt vom Einbruch des ersten Zuges bis zum verlassen des zweiten Zuges, wenn beide Züge behinderungsfrei fahren sollen und der \emph{langsame} vor dem \emph{schnellen} Zug fährt?
}
\end{enumerate}
\newpage
\chapter{\IfLanguage{english}{Third Stage}\IfLanguage{ngerman}{Dritte Stufe}}
\section{\IfLanguage{english}{Route Locking}\IfLanguage{ngerman}{Fahrstraßenverschluss und -festlegung}}
\setup
\IfLanguage{english}{The sequence of trains between two stations with turnouts should be examined! You need:}
\IfLanguage{ngerman}{Die Zugfolge zwischen zwei Bahnhöfen mit Weichen soll betrachtet werden! Dafür wird benötigt:}
\begin{itemize}
\IfLanguage{english}{
\item Infrastructure as shown below with at least \emph{two} complete blocks,
\item Two different trains with different vehicle dynamics in station A.
}
\IfLanguage{ngerman}{
\item Infrastruktur wie unten abgebildet mit mindestens \emph{zwei} vollständigen Blöcke,
\item zwei Züge mit verschiedener Fahrdynamik im Bahnhof A.
}
\end{itemize}
\begin{center}
\tikzfigure[0.7\textwidth]{challenge3_setup1.tikz}
\end{center}
\IfLanguage{english}{The turnouts may only be passed at \SI{80}{\kilo\metre\per\hour} along the branching track. The speed in the straight track is not limited.}
\IfLanguage{ngerman}{Die Weichen dürfen im abzweigenden Strang jeweils nur mit \SI{80}{\kilo\metre\per\hour} befahren werden. Im durchgehenden Strang ist die Geschwindigkeit nicht begrenzt.}\\[0.25cm]
\task
\begin{enumerate}[label=\alph*)]
\IfLanguage{english}{
\item Complete the infrastructure with distant signals, block signals, route signals, block clearing points and route clearing points!
\item Pick a train to leave and explain why not the other one!
\item How many laps does it take for the second train to depart?
\item How many laps does it take for both trains (sum of the laps of train 1 and train 2) to arrive at the destination station?
}
\IfLanguage{ngerman}{
\item Ergänze die Infrastruktur mit Vorsignalen, Blocksignalen, Fahrstraßensignalen, Signalzugschlussstellen und Fahrstraßenzugschlussstellen!
\item Wähle den Zug aus, der als erster abfahren soll und begründe!
\item Wie viele Runden dauert es bis der zweite Zug abfahren kann?
\item Wie viele Runden dauert es bis beide Züge (Summe der Runden von Zug 1 und Zug 2) im Zielbahnhof angekommen sind?
}
\end{enumerate}
\newpage
\section{\IfLanguage{english}{Overlap}\IfLanguage{ngerman}{Durchrutschweg}}
\setup
\IfLanguage{english}{Two trains are too cross in a station! You need:}
\IfLanguage{ngerman}{In einem Bahnhof sollen sich zwei Züge kreuzen! Dafür wird benötigt:}
\begin{itemize}
\IfLanguage{english}{
\item Infrastructure as shown below with at least \emph{two} complete blocks,
\item two different trains with different vehicle dynamics running at maximum speed,
\item train 1 runs non-stop; train 2 has a service stop of 2 laps at the station.
}
\IfLanguage{ngerman}{
\item Infrastruktur wie unten abgebildet,
\item zwei Züge mit verschiedener Fahrdynamik in Fahrt mit maximaler Geschwindigkeit,
\item Zug 1 fährt ohne Halt durch; Zug 2 hat einen Verkehrshalt von 2 Runden im Bahnhof
}
\end{itemize}
\begin{center}
\tikzfigure{challenge3_setup2.tikz}
\end{center}
\IfLanguage{english}{The turnouts may be passed at \SI{80}{\kilo\metre\per\hour} at the branching track. The overlap requires 2 fields.}
\IfLanguage{ngerman}{Die Weichen dürfen im abzweigenden Strang mit \SI{80}{\kilo\metre\per\hour} befahren werden. Der Durchrutschweg beträgt 2 Felder.}\\[0.25cm]
\task
\begin{enumerate}[label=\alph*)]
\IfLanguage{english}{
\item Complete the infrastructure with distant signals, block signals, route signals, block clearing points and route clearing points!
\item Decide which train to run on which track. Which problems can occur?
\item After how many laps did train 2 stop at the station?
\item After how many laps did train 1 leave the station completely?
\item Make a locking plan of the station!
}
\IfLanguage{ngerman}{
\item Ergänze die Infrastruktur mit Vorsignalen, Signalzugschlussstellen und Fahrstraßenzugschlussstellen!
\item Entscheide begründet welcher Zug auf welches Gleis fahren soll. Welche Probleme können auftreten?
\item Nach wie viel Runden ist Zug 2 im Bahnhof zum stehen gekommen?
\item Nach wie viel Runden hat Zug 1 den Bahnhof vollständig verlassen?
\item Fertige vom Bahnhof einen Verschlussplan an!
}
\end{enumerate}
\newpage
\section{\IfLanguage{english}{Dual protection points}\IfLanguage{ngerman}{Zwieschutzweiche}}
\setup
\IfLanguage{english}{Trains meet in a station with a dual protection points. You need:}
\IfLanguage{ngerman}{In einem Bahnhof mit Zwieschutzweiche begegenen sich Züge. Dafür wird benötigt:}\\[0.25cm]
\begin{itemize}
\IfLanguage{english}{
\item Infrastructure as shown below (right-hand traffic),
\item three trains: train 1 and 2 standing; train 3 running at maximum speed.
}
\IfLanguage{ngerman}{
\item Infrastruktur wie unten abgebildet (Rechtsfahrbetrieb)
\item drei Züge: Zug 1 und 2 stehen; Zug 3 fährt mit maximaler Geschwindigkeit
}
\end{itemize}
\begin{center}
\tikzfigure{challenge3_setup3.tikz}
\end{center}
\task
\begin{enumerate}[label=\alph*)]
\IfLanguage{english}{
\item Lock the route for train 1!
\item Lock the route for train 3!
\item Lock the route for train 2 after train 1 has left the station. What is the problem? How can it be solved?
}
\IfLanguage{ngerman}{
\item Sichere die Ausfahrstraße für Zug 1!
\item Sichere die Einfahrstraße für Zug 3!
\item Sichere die Fahrstraße für Zug 2, nachdem Zug 1 ausgefahren ist. Welches Problem tritt auf? Wie kann es gelöst werden?
}
\end{enumerate}

View File

@ -0,0 +1,95 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\section{Zugfolgesicherung Tutorial}
Nachdem Ihr in der Stufe 1 immer nur einen Zug zu betrachten hattet, soll nun der Betrieb von mehreren Zügen auf einem Gleis möglich sein. Um dies sicher zu ermöglichen wird das Gleis in mehrere Blöcke geteilt. An der Grenze zwischen zwei Blöcken werden hierzu Hauptsignale (sogenannte Blocksignale) aufgestellt. Wie Ihr in Stufe 1 bereits festgestellt habt, ist der Bremsweg der Züge deutlich länger als eine realistische Sichtweite von 1 bis 3 Feldern. Aus diesem Grunde sind zusätzliche Vorsignale notwendig.
\subsection*{Rollen}
\begin{itemize}
\item Spielleiter
\item Triebfahrzeugführer des Nahverkehrszuges
\item Triebfahrzeugführer des Fernverkehrszuges
\item Fahrdienstleiter
\end{itemize}
Der Fahrdienstleiter als neue Rolle ist für alle Signale und im späteren Verlauf auch für Weichen und Fahrstraßen zuständig. Wenn Ihr ein sehr großes Szenario spielt, kann es sinnvoll sein, dass Ihr mehrere Fahrdienstleiter mit unterschiedlichen Zuständigkeitsbereichen bestimmt.
\subsection*{Material}
\begin{itemize}
\item Gleise
\item ein Bahnsteig
\item zwei Hauptsignale mit Signalzugschlusstelle
\item zwei Vorsignale
\item Nahverkehrszug (braun) mit zugehörigen Fahrdynamikmodell, Zugschluss- und -spitzensignal
\item Fernverkehrszug (grün) mit zugehörigen Fahrdynamikmodell, Zugschluss- und -spitzensignal
\end{itemize}
\setup
Der Fernverkehrszug befindet sich auf Feld 0 und sein Schalthebel steht auf \SI{160}{\kilo\metre\per\hour} (4 Felder).
Der Nahverkehrszug befindet sich auf Feld 25 und sein Schalthebel steht auf \SI{0}{\kilo\metre\per\hour} (0 Felder).
\tikzfigure{tutorial_followprotection_setup.tikz}
\subsection*{Ablauf}
Zur Abbildung der Logik der Hauptsignale sind zusätzliche Phasen in jeder Runde erforderlich. Eine Runde beinhaltet nun folgende Phasen:
\begin{enumerate}
\item Signale auf Fahrt stellen
\item Schalthebelposition ändern (Beschleunigen/Bremsen)
\item Züge bewegen
\item Haltfall von Signalen ausführen
\end{enumerate}
\subsubsection*{Runde 1}
\phase{1} Der Fahrdienstleiter prüft, ob er Signale auf Fahrt stellen darf. Die Voraussetzung hierfür ist, dass das Signal derzeit auf „Halt“ steht und der folgende Blockabschnitt bis zur Signalzugschlusstelle hinter dem nächsten Hauptsignal frei von Zügen ist. Als weitere Blockbedingung muss ein vorausfahrender Zug durch mindestens ein „Halt“ zeigendes Hauptsignal gedeckt sein. Dies ist derzeit nicht der Fall. Das erste Hauptsignal zeigt zwar „Halt“, jedoch ist der folgende Blockabschnitt belegt. Das zweite Hauptsignal zeigt bereits „Fahrt“. Die Vorsignale können immer nur gemeinsam mit dem jeweils zugehörigen Hauptsignal verstellt werden. Im ersten Schritt kann somit kein Signal auf „Fahrt“ gestellt werden. Dies wird im Folgenden auch häufiger passieren. Wichtig ist, dass der Fahrdienstleiter diesen Schritt trotzdem immer durchführt.
\phase{2} Diese Phase kennt Ihr bereits aus dem ersten Tutorial. Der Nahverkehrszug kann entlang des zweiten Pfeils auch direkt auf \SI{80}{\kilo\metre\per\hour} (2 Felder) beschleunigt werden. Der Fernverkehrszug soll seine aktuelle Geschwindigkeit beibehalten.
\phase{3} Diese Phase kennt ihr ebenfalls bereits. Setzt den Nahverkehrszug entsprechend zwei Felder und den Fernverkehrszug vier Felder nach vorne. Denkt hierbei an das Bedienen der Zähler. Um den Überblick bei mehreren Zügen zu bewahren solltet Ihr immer erst einen Zug bewegen, dann die zugehörigen Zähler bedienen und erst danach mit dem nächsten Zug weitermachen. Hierdurch könnt Ihr jederzeit am Rundenzähler erkennen, welchen Zug bereits bewegt wurde und welcher noch bedient werden muss.
\phase{4} Der Fahrdienstleiter muss prüfen, ob ein Zug mit seiner Spitze an der Signalzugschlussstelle vorbeigefahren ist. Dies ist beim Nahverkehrszug der Fall. Der Fahrdienstleiter muss daher das zugehörige Hauptsignal auf „Halt“ und das zugehörige Vorsignal auf „Halt erwarten“ stellen. Damit ist die erste Runde beendet.
\subsubsection*{Runde 2}
\phase{1} Beim Prüfen, ob ein Hauptsignal auf „Fahrt“ gestellt werden kann, fällt dem Fahrdienstleiter vielleicht auf, dass der Bereich zwischen dem ersten und dem zweiten Hauptsignal frei ist. Das erste Hauptsignal kann jedoch noch nicht auf Fahrt gestellt werden, da sich der hintere Teil des Nahverkehrszuges noch vor der Signalzugschlussstelle befindet. Dieser Bereich hinter dem Hauptsignal muss als Sicherheitsraum frei sein, bevor eine Zugfahrt auf das Signal zugelassen werden kann.
\phase{2} Der Fernverkehrszug muss dringend anfangen zu bremsen, da er sich einem „Halt“ zeigenden Hauptsignal nähert und in der letzten Runde das „Halt erwarten“ zeigende Vorsignal passiert hat. Der zuständige Triebfahrzeugführer des Fernverkehrszuges stellt den Schalthebel hierfür auf \SI{120}{\kilo\metre\per\hour} (3 Felder). Der Nahverkehrszug kann auf \SI{120}{\kilo\metre\per\hour} (3 Felder) beschleunigen.
\phase{3} Setzt nun beide Züge entsprechend der Schalthebelposition weiter.
\phase{4} Einen Haltfall gibt es in dieser Runde nicht, da bereits alle Signale „Halt“ zeigen.
\subsubsection*{Runde 3}
\phase{1} In dieser Runde kann der Fahrdienstleiter erstmals ein Signal auf Fahrt stellen. Da der Bereich zwischen dem ersten Hauptsignal und der Signalzugschlusstelle hinter dem zweiten Hauptsignal frei ist, kann er das erste Hauptsignal und das zugehörige Vorsignal auf „Fahrt“ bzw. „Fahrt erwarten“ stellen.
\phase{2} Theoretisch könnte der Fernverkehrszug nun wieder beschleunigen, da der nächste Blockabschnitt vor ihm frei ist. Da er sich jedoch nicht innerhalb der Sichtweite vor dem Signal (die sich zwei Felder vor dem Hauptsignal) befindet, muss er zunächst weiter Abbremsen, da er ja aufgrund des Vorsignals von einem „Halt“ zeigenden Hauptsignal ausgehen muss. Bremst ihn daher auf \SI{80}{\kilo\metre\per\hour} (2 Felder) ab.
\phase{3} Der Nahverkehrszug kann seine Höchstgeschwindigkeit von \SI{120}{\kilo\metre\per\hour} (3 Felder) beibehalten. Setzt beide Züge entsprechend weiter und bedient die Zähler.
\phase{4} Einen Haltfall gibt es nicht.
\subsubsection*{Runde 4}
\phase{1} Diese Runde kann kein Signal auf Fahrt gestellt werden.
\phase{2} Der Fernverkehrszug ist nun in Sichtweite des Hauptsignals und darf daher wieder beschleunigen. Setzt den Schalthebel dafür auf \SI{80}{\kilo\metre\per\hour} (2 Felder). Der Nahverkehrszug behält seine Höchstgeschwindigkeit bei.
\phase{3} Setzt beide Züge entsprechend weiter.
\phase{4} Da die Spitze des Fernverkehrszuges die Signalzugschlussstelle des ersten Hauptsignals passiert hat, tritt hier der Haltfall ein. Der Fahrdienstleiter muss das Hauptsignal und zugehörige Vorsignal entsprechend bedienen.
\subsection*{Ende des Tutorials}
Der Nahverkehrszug sollte sich nun auf den Feldern 35 und 36 befinden und auf seinen Zählern eine 4 und eine 11 stehen. Der Fernverkehrszug sollte auf den Feldern 9 bis 12 stehen und auf seinen Zählern eine 4 und eine 12. Ferner sollten alle Haupt- und Vorsignale „Halt“ bzw. „Halt erwarten“ zeigen.
\begin{framed}\noindent
Wenn dies so ist, dann herzlichen Glückwunsch! Ihr habt das zweite Tutorial erfolgreich abgeschlossen und könnt nun die Aufgaben im Level 2 selbstständig erledigen.
\end{framed}
\begin{framed}\noindent
Wenn dies nicht so ist, dann müsst Ihr noch einmal zurückgehen und überlegen, an welcher Stelle Ihr ggf. etwas vergessen haben könntet.
\end{framed}

View File

@ -1,85 +0,0 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\part{\IfLanguage{english}{Manual}\IfLanguage{ngerman}{Anleitung}}
\chapter{\IfLanguage{english}{Simulation}\IfLanguage{ngerman}{Simulation}}\label{sec:Simulation}
\section{\IfLanguage{english}{Line setup}\IfLanguage{ngerman}{Aufbau der Strecke}}
\IfLanguage{english}{The line consists of any number of spaces. Signals or platforms can be arranged along the line.}
\IfLanguage{ngerman}{Die Strecke besteht aus einer beliebigen Anzahl von Feldern. An die Strecke können Signale oder Bahnsteigkanten angeordnet werden.}
\\[0.5cm]
\tikzfigure{composition.tikz}
\todo{left-hand-driving}
\section{\IfLanguage{english}{Trains}\IfLanguage{ngerman}{Züge}}
\todo{} (nur Zugfahrten, keine Rangierfahrten)
\section{\IfLanguage{english}{Round sequence}\IfLanguage{ngerman}{Rundenablauf}}
\IfLanguage{english}{The simulation is based on rounds. Each round consists of at least two consecutive steps:}
\IfLanguage{ngerman}{Die Simulation erfolgt Rundenbasiert. Jede Runde besteht aus aufeinanderfolgenden Schritten:}
\input{\ROOT/tables/game_procedure.tex}
\IfLanguage{english}{At the start of the game, the train stands still. control-lever positions start at the ``$0$'' field.
The different train dynamics are depicted by different possible movements of the shift lever.}
\IfLanguage{ngerman}{Beim Start des Spiels steht der Zug. Schalthebelposition beginnen bei dem Feld ``$0$''.
Die unterschiedliche Fahrdynamik von Zügen wird durch unterschiedliche mögliche Schalthebelbewegung abgebildet.}
\section{\IfLanguage{english}{Example of a simulated train movements}\IfLanguage{ngerman}{Beispiel einer simulierten Zugbewegung}}
\IfLanguage{english}{The control-lever is moved along the green arrows. control-lever positions for a passenger train:}
\IfLanguage{ngerman}{Der Schalthebel wird entlang der grünen Pfeile bewegt. Schalthebelpositionen für einen Personenzug:}
\begin{center}
\tikzfigure[0.8\textwidth]{control_lever.tikz}
\end{center}
\vspace*{0.5cm}
\IfLanguage{english}{A train is supposed to accelerate on the following track:}
\IfLanguage{ngerman}{Ein Zug soll auf folgender Strecke beschleunigen:}
\\
\tikzfigure{initial_setup.tikz}
\\[0.5cm]
\IfLanguage{english}{ For the course of the learning game, we start with the first round and follow the process from the previous section \emph{\nameref{sec:Simulation}}.
In the first round, the train from the initial condition stands still. In the example there are no signals that can be set.
We can move the control-lever by one position to \SI{40}{\kilo\metre\per\hour} forward. The round is over.}
\IfLanguage{ngerman}{Für den Verlauf des Lernspiels beginnen wir mit der ersten Runde und befolgen den Ablauf aus vorheringen Abschnitt \emph{\nameref{sec:Simulation}}.
In der ersten Runde steht der Zug aus der Anfangsbedingung. Im Beispiel gibt es keine Signale die eingestellt werden können.
Wir können den Schalthebel um eine Position auf \SI{40}{\kilo\metre\per\hour} nach vorne bewegen. Die Runde ist beendet.}
\IfLanguage{english}{ The second round begins with the execution of the movement one field to the right.
The control-lever can be moved on and the round is over.
The third round begins with the execution of the movement by \emph{two} fields to the right.
The control-lever can be moved on again and the round is over.
Continue until the position of \SI{120}{\kilo\metre\per\hour} is reached and the train moves evenly with three fields per round.}
\IfLanguage{ngerman}{Die zweite Runde beginnt mit dem Ausführen der Bewegung um ein Feld nach rechts.
Der Schalthebel kann wieder weiterbewegt werden und die Runde ist damit beendet.
Die dritte Runde beginnt mit dem Ausführen der Bewegung um \emph{zwei} Felder nach rechts.
Der Schalthebel kann wieder weiterbewegt werden und die Runde ist damit beendet.
Und so weiter, bis man auf der Position auf \SI{120}{\kilo\metre\per\hour} angekommen ist und der Zug sich gleichmäßig mit drei Felder pro Runde weiter bewegt.}
\\[0.5cm]
\input{\ROOT/tables/example_movement.tex}
\chapter{\IfLanguage{english}{Block section}\IfLanguage{ngerman}{Blockteilung}}
\section{\IfLanguage{english}{Block section setup}\IfLanguage{ngerman}{Anordnung von Blocken}}
\IfLanguage{english}{The main signal may only show the proceed aspect if there is no train in the following block section (from track vacancy detector to track vacancy detector).
The distant signal is located in front of the main signal in braking distance and reflects the signal aspect of the main signal.}
\IfLanguage{ngerman}{Das Hauptsignal darf nur Fahrt zeigen, wenn im nachfolgenden Blockabschnitt (von Gleisfreimeldegrenze zu Gleisfreimeldegrenze) kein Zug ist.
Das Vorsignal steht im Bremswegabstand vor dem Hauptsignal und spiegelt den Signalbegriff vom Hauptsignal.}
\begin{center}
\input{\ROOT/tables/signal_aspects.tex}
\end{center}
\section{\IfLanguage{english}{Example of a train running through a block}\IfLanguage{ngerman}{Beispiel einer Zugfahrt durch einen Block}}
\todo{}
\chapter{\IfLanguage{english}{routes}\IfLanguage{ngerman}{Fahrstraßen}}
\section{\IfLanguage{english}{route setup}\IfLanguage{ngerman}{Anordnung von Fahrstraßen}}
\todo{}
\section{\IfLanguage{english}{Example of a train using a route}\IfLanguage{ngerman}{Beispiel einer Zugfahrt durch eine Fahrstraße}}
\todo{}

View File

@ -0,0 +1,147 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\section{Fahrwegsicherung Tutorial}
Nachdem Ihr Euch in der Stufe 2 mit der Zugfolgesicherung vertraut gemacht habt und die Funktion von Haupt und Vorsignalen kennt, werden in dieser Stufe Weichen und Fahrstraßen eingeführt. Erst in dieser Stufe sind damit reale Szenarien mit sich verzweigenden Fahrwegen abbildbar.
\subsection*{Rollen}
\begin{itemize}
\item Spielleiter
\item Triebfahrzeugführer des Nahverkehrszuges
\item Fahrdienstleiter
\end{itemize}
\subsection*{Material}
\begin{itemize}
\item Gleise
\item Weichen
\item Vorsignale
\item Hauptsignale
\item Fahrstraßenfelder
\item Signalzugschlusstellen
\item Fahrstraßenzugschlussstellen
\item Richtungsverwaltung
\item Nahverkehrszug (braun) mit entsprechenden Fahrdynamikmodell, Zugschluss- und -spitzensignal
\end{itemize}
\setup
\tikzfigure{tutorial_routeprotection_setup.tikz}
Neben dem Startaufbau sind auch die Ausgangszustände der Züge und Signale herzustellen. Der Nahverkehrszug steht gerade vor dem Hauptsignal A und wartet auf die Erlaubnis zur Einfahrt in den Bahnhof. Sein Schalthebel steht daher auf \SI{0}{\kilo\metre\per\hour} (0 Felder). Alle Hauptsignale zeigen „Halt“ und alle Vorsignale zeigen „Halt erwarten“. Die Richtungsverwaltung auf der Streckenseite mit Zug zeigt in Richtung Bahnhof (gelber Stift beim Pfeil nach rechts).
\subsection*{Ablauf}
Zur Abbildung der Logik der Fahrstraßen sind zusätzliche Schritte in jeder Runde erforderlich. Eine Runde beinhaltet nun folgende Phasen:
\begin{enumerate}
\item Fahrstraße sichern
\begin{enumerate}[label=\alph*)]
\item Weichen im befahrenen Teil der Fahrstraße einstellen und sichern
\item Flankenschutz herstellen
\item Durchrutschweg sichern
\end{enumerate}
\item Signale auf Fahrt stellen
\item Schalthebelposition ändern (Beschleunigen/Bremsen)
\item Züge bewegen
\item Haltfall von Signalen ausführen
\item Fahrstraßen auflösen
\end{enumerate}
\subsubsection*{Runde 1}
Damit in diesem Tutorial überhaupt etwas passieren kann muss der Fahrdienstleiter eine Fahrstraße einstellen. Wir möchten den Nahverkehrszug nach Gleis 2 einfahren und vor dem Ausfahrsignal halten lassen. Hierzu müssen alle Unterphasen von „Fahrstraße sichern“ erfolgreich durchlaufen werden:
\phase{1a} Als erstes muss der Fahrdienstleiter die Weichen im Fahrweg in die korrekte Lage für die Zugfahrt bringen. Hierzu stellt er die Weiche W1 in Rechtslage (immer von der Weichenspitze aus gesehen) und die Weiche W2 in Linkslage. Um die Weichen zu verschließen, setzt er jeweils einen Verschlussmarker (blauer Holzstift) so mit der Kerbe auf die Stellstäbe der beiden Weichen, dass diese nicht mehr umgestellt werden können. Wenn dies bei beiden Weichen erfolgt ist, kann er einen weiteren Verschlussmarker nehmen und ihn zur Bestätigung auf das Fahrstraßenfeld neben dem Einfahrsignal stellen. Hiermit sind die Weichen verschlossen. Dieser Marker dürfen vorerst nicht mehr entfernt werden.
\phase{1b} Der Flankenschutz für diese Fahrstraße wird zum einen durch die Weiche W3 und zum anderen durch das Signal D sichergestellt. Der Fahrdienstleiter muss hierzu die Weiche 3 in Rechtslage bringen und mit einem Flankenschutzmarker (gelber Holzstift) verschließen. Das Signal D ist bereits in Haltstellung. Es wird in dieser Lage ebenfalls mit einem Flankenschutzmarker verschlossen, indem der Fahrdienstleiter diesen auf das sichtbare Signalbild stellt. Wenn beide Flankenschutzräume so gesichert sind, kann der Fahrdienstleiter einen weiteren Flankenschutzmarker nehmen und ihn zur Bestätigung auf das Fahrstraßenfeld neben dem Fahrstraßensignal stellen. Hiermit sind die Flankenschutzweiche und das Signal verschlossen. Die Marker dürfen vorerst nicht mehr entfernet werden.
\phase{1c} Um den Durchrutschweg zu sichern, nimmt der Fahrdienstleiter nun einen Durchrutschwegmarker (oranger Holzstift) und stellt ihn hinter dem Zielsignal (in diesem Fall Signal E) auf Höhe der Signalzugschlusstelle ins Gleis. Er symbolisiert, dass das Gleis an dieser Stelle für andere Zwecke gesperrt ist. Zur Bestätigung kann nun ein weiterer Durchrutschwegmarker auf das Fahrstraßenfeld neben dem Fahrstraßensignal gestellt werden. Hiermit ist der Durchrutschweg gesichert und die Fahrstraße nun vollständig eingestellt. Sämtliche Marker dürfen vorerst nicht mehr entfernt werden.
\phase{2} Der Fahrdienstleiter prüft nun, ob der Fahrweg vom Startsignal (Signal A) bis zum Ende des Durchrutschweges hinter dem Zielsignal (Signal E) frei von anderen Zügen ist. Außerdem müssen die Flankenschutzräume (Weiche W1-W3 und W2-Signal D) frei sein. Wenn diese Bedingungen vorliegen, darf der Fahrdienstleiter nun das Startsignal (und ein ggf. zugehöriges Vorsignal) auf Fahrt stellen.
\phase{3} Da das Einfahrsignal nun „Fahrt“ zeigt, kann der Triebfahrzeugführer den Nahverkehrszug auf \SI{80}{\kilo\metre\per\hour} (2 Felder) beschleunigen.
\phase{4} Setzt den Zug entsprechend vor.
\phase{5} Einen Haltfall gibt es nicht.
\phase{6} Da der Zug die Fahrstraßenzugschlusstelle noch nicht passiert hat, kann keine Fahrstraße aufgelöst werden.
\subsubsection*{Runde 2}
\phase{1 und 2} Eine Fahrstraße wollen wir in dieser Runde nicht einstellen.
\phase{3} Der Zug kann weiter auf \SI{120}{\kilo\metre\per\hour} (3 Felder) beschleunigen. Bedenkt jedoch, dass der Zug ein „Halt erwarten“ zeigendes Vorsignal passiert hat. Er muss daher am nächsten Signal zum Stehen kommen können.
\phase{4} Setzt den Zug entsprechend vor.
\phase{5} Die Zugspitze hat nun die Signalzugschlussstelle beim Hauptsignal A passiert und der Fahrdienstleiter muss den Haltfall auslösen. Beim Haltfall wird das Signal wieder auf „Halt“ gestellt. Die verschiedenen Marker bleiben auf dem Fahrstraßenfeld zunächst jedoch stehen und symbolisieren, dass die Fahrstraße weiterhin gesichert ist.
\phase{6} Eine Fahrstraße kann in dieser Runde ebenfalls noch nicht aufgelöst werden. Zwar hat die Zugspitze bereits die Fahrstraßenzugschlusstelle passiert, jedoch ist hierfür der Zugschluss maßgebend.
\subsubsection*{Runde 3}
\phase{1 und 2} Eine Fahrstraße wollen wir in dieser Runde nicht einstellen.
\phase{3} Um rechtzeitig anhalten zu können, muss der Zug nun auf \SI{80}{\kilo\metre\per\hour} (2 Felder) abbremsen.
\phase{4} Setzt den Zug entsprechend vor.
\phase{5} Einen Haltfall gibt es nicht.
\phase{6} Nun hat aber der Zugschluss die Fahrstraßenzugschlusstelle passiert und der Fahrdienstleiter kann die Fahrstraße auflösen. Hierzu nimmt er alle zu dieser Fahrstraße gehörenden Verschlussmarker und Flankenschutzmarker vom Feld. Dies gilt sowohl für die Marker an den Weichen und Signalen als auch für die Marker auf dem Fahrstraßenfeld. Die Weichen und Signale sind somit nicht mehr verschlossen und können ab der nächsten Runde für andere Fahrstraßen verwendet werden. Bei dem Durchrutschwegmarker läuft es etwas anders. Es darf zunächst nur der Marker auf dem Fahrstraßenfeld entfernt werden. Der Marker am Ende des Durchrutschweges kann erst später entfernt werden, da der Zug sich noch dem Zielsignal nähert und sich verbremsen könnte. Um den Durchrutschwegmarker entfernen und den Durchrutschweg damit auflösen zu können, muss der Zug entweder zum Stehen gekommen sein oder es muss eine weitere Fahrstraße vom vorherigen Zielsignal über den Durchrutschweg eingestellt werden.
Da der Zug aber zumindest die Signalzugschlusstelle passiert hat, kann der Fahrdienstleiter die Richtungsfestlegung aufheben, indem er den gelben Stift entnimmt. Nun könnte ein Zug den Streckenabschnitt wieder in der anderen Fahrtrichtung nutzen. Die Runde ist hiermit zu Ende.
\subsubsection*{Runde 4}
In dieser Runde passiert nichts Besonderes. Der Zug kann sich weiterhin mit \SI{80}{\kilo\metre\per\hour} (2 Felder) dem Zielsignal nähern.
\subsubsection*{Runde 5}
In dieser Runde muss der Zug auf \SI{40}{\kilo\metre\per\hour} (1 Feld) abbremsen, um vor dem Signal zum Stehen kommen zu können.
\subsubsection*{Runde 6}
Der Zug befindet sich bereits unmittelbar vor dem „Halt“ zeigenden Signal. Da der Schalthebel aber noch auf \SI{40}{\kilo\metre\per\hour} (1 Feld) steht, befindet er sich aber noch in Bewegung. Der Triebfahrzeugführer muss ihn daher in dieser Runde auf \SI{0}{\kilo\metre\per\hour} (0 Felder) abbremsen. Erst jetzt gilt der Zug als „zum Stehen gekommen“. Er kann dementsprechend nicht weiter vorgesetzt werden. Im Rahmen der Fahrstraßenauflösung kann der Fahrdienstleiter nun den Durchrutschwegmarker entfernen.
\subsection*{Zwischenkontrolle}
Der Nahverkehrszug sollte sich nun auf den Feldern 9 und 10 vor dem „Halt“ zeigenden Hauptsignal E befinden. Auch alle anderen Haupt- und Vorsignale zeigen „Halt“ bzw. „Halt erwarten“. Es befinden sich außerdem keine Marker auf dem Spielfeld.
\begin{framed}\noindent
Wenn dies so ist, dann könnt Ihr mit der Ausfahrt des Zuges weitermachen.
\end{framed}
\begin{framed}\noindent
Wenn dies nicht so ist, dann müsst Ihr noch einmal zurückgehen und überlegen, an welcher Stelle Ihr ggf. etwas vergessen haben könntet.
\end{framed}
\subsubsection*{Runde 7}
Damit der Zug weiterfahren kann muss der Fahrdienstleiter nun die Ausfahrstraße einstellen. Dies läuft genauso ab, wie die Einfahrstraße mit einer Ausnahme. Anstelle des Durchrutschweges wird mit dem gelben Durchrutschwegmarker die Richtungsverwaltung des folgenden Streckenabschnittes eingestellt.
\begin{framed}\noindent
Der Durchrutschwegmarker darf bei Ausfahrten nur dann auf das Fahrstraßenfeld gesetzt werden, wenn die Richtungsverwaltung im folgenden Streckenabschnitt in die korrekte Richtung zeigt. Andernfalls müsst Ihr warten, bis der Gegenzug angekommen ist. Dies wird vor allem bei großen Szenarien wichtig.
\end{framed}
Bei der Ausfahrt des Zuges müsst Ihr beachten, dass die Weiche im genutzten abzweigenden Strang nur mit 80 km/h befahren werden darf. Dies gilt solange, bis der Zugschluss die letzte Weiche im Fahrweg vollständig verlassen hat. Im durchgehenden Strang gibt es in der Regel keine Beschränkung.
\begin{framed}\noindent
Für die Weichengeschwindigkeit können in Szenarien auch andere Werte (z.B. 40 km/h oder 120 km/h) genannt sein.
\end{framed}
Denkt an das korrekte Vorsetzen des Zuges und die Abläufe mit Haltfall und Fahrstraßenauflösung.
\subsubsection*{Runde 8}
Verlasst mit dem Zug so zügig wie möglich den Bahnhof!
\subsubsection*{Runde 9}
Fahrt so schnell wie möglich mit Eurem Zug!
\subsection*{Ende des Tutorials}
Der Nahverkehrszug sollte sich nun auf den Feldern 16 und 17 befinden. Alle Haupt- und Vorsignale zeigen „Halt“ bzw. „Halt erwarten“. Außer dem Durchrutschwegmarker in der rechten Richtungsverwaltung befinden sich keine Marker auf dem Spielfeld.
\begin{framed}\noindent
Wenn dies so ist, dann herzlichen Glückwunsch! Ihr habt das dritte Tutorial erfolgreich abgeschlossen und könnt nun die Aufgaben im Level 3 selbstständig erledigen.
\end{framed}
\begin{framed}\noindent
Wenn dies nicht so ist, dann müsst Ihr noch einmal zurückgehen und überlegen, an welcher Stelle Ihr ggf. etwas vergessen haben könntet.
\end{framed}

View File

@ -0,0 +1,85 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2020 Martin Scheidt (Attribution 4.0 International, CC-BY 4.0)
% You are free to copy and redistribute the material in any medium or format. You are free to remix, transform, and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. No warranties are given.
\section{Fahrdynamik Tutorial}
In diesem ersten Tutorial werden die Grundlagen der Fahrdynamiksimulation im Spiel vermittelt.
\subsection*{Rollen}
\begin{itemize}
\item Spielleiter
\item Triebfahrzeugführer des Nahverkehrszuges
\end{itemize}
Der Spielleiter führt durch das Tutorial bzw. durch die Aufgabe. Er oder Sie erhält hierfür diese Anleitung und ist dafür verantwortlich, dass alle anderen den Runden- und Phasenablauf einhalten.
Ein Triebfahrzeugführer erhält das zum jeweiligen Zug gehörende Fahrdynamikmodell und ist für das Beschleunigen/Abbremsen, das Bedienen der Zähleinrichtungen und das Bewegen seines Zuges verantwortlich.
\subsection*{Material}
\begin{itemize}
\item Gleise
\item zwei Bahnsteige
\item Nahverkehrszug (braun) mit Fahrbrett und rotem Fahrdynamikmodell, Zugschluss- und -spitzensignal
\end{itemize}
\subsection*{Funktion des Fahrbrettes}
\tikzfigure{driving_board.tikz}
\setup
\tikzfigure{tutorial_trainrun_setup.tikz}
\subsection*{Ablauf}
In der Stufe 1 besteht ein Runde aus folgenden Phasen:
\begin{enumerate}
\item Schalthebelposition ändern (Beschleunigen/Bremsen)
\item Züge bewegen
\end{enumerate}
\subsubsection*{Runde 1}
\phase{1} Der Nahverkehrszug steht zu Beginn der Runde 1 am Bahnsteig. Um ihn bewegen zu können muss der Triebfahrzeugführer in Phase 1 den Schalthebel verstellen. Hierzu setzt er den Schalthebel auf dem Fahrbrett von dem Feld \SI{0}{\kilo\metre\per\hour} (0 Felder) auf \SI{40}{\kilo\metre\per\hour} (1 Feld). Außerdem muss die Fahrtrichtung des Zuges durch ein Spitzen- und ein Zugschlusssignal angezeigt werden. Diese muss der Triebfahrzeugführer an den offenen Kupplungen befestigen. Hiermit ist die Phase 1 zu Ende.
\begin{framed}\noindent
Der Schalthebel kann in jeder Runde nur einmal entlang eines der eingezeichneten Pfeile versetzt werden. Durch die unterschiedlichen Felder und die sie verbindenden Pfeile werden die Unterschiede in der Fahrdynamik der verschiedenen Züge dargestellt.
\end{framed}
\phase{2} Alle Züge (in diesem Fall nur der eine vorhanden) werden entsprechend der eingestellten Schalthebelposition durch die jeweiligen Triebfahrzeugführer nach vorne gesetzt. Um bei mehreren Zügen den Überblick zu bewahren sind an den Fahrbrettern zwei mechanische Zähler angebracht. Den linken Zähler drückt der jeweilige Triebfahrzeugführer einmal, um die Anzahl der Runden zu zählen. Den rechten Zähler drückt er so oft, wie er den Zug Felder nach vorne bewegt. In diesem Fall also beide Zähler einmal. Damit ist die erste Runde zu Ende.
\begin{framed}\noindent
Beim Bewegen der Züge kann es dazu kommen, dass ein Zug einen Halt verpasst, ein Signal überfährt oder sogar einen Unfall hat. In diesem Fall ist es sinnvoll die Runde erst zu beenden und dann zu überlegen, an welcher Stelle ein Fehler passiert ist. Im Anschluss musst du entscheiden wie du fortfahren willst (z.B. Halt ausfallen lassen, hinter dem Signal anhalten, zwei Runden zurückgehen oder das ganze Level neu anfangen).
\end{framed}
\subsubsection*{Runde 2}
\phase{1} Der Zug beschleunigt weiter auf \SI{80}{\kilo\metre\per\hour} (2 Felder).
\phase{2} Der Triebfahrzeugführer setzt den Zug entsprechende Felder vor. Denke dabei an die beiden Zähler. Dort sollte nach der Runde links eine 2 und rechts eine 3 stehen.
\subsubsection*{Runde 3}
Beschleunige den Zug auf \SI{120}{\kilo\metre\per\hour} (3 Felder) und setze ihn entsprechend vor.
\subsubsection*{Runde 4}
In dieser Runde beschleunigt der Zug nicht weiter, da er seine Höchstgeschwindigkeit von \SI{120}{\kilo\metre\per\hour} (3 Felder) bereits erreicht hat. Setze den Zug entsprechend vor.
\begin{framed}\noindent
Achtung: Um an vorgegebenen Stellen den Zug passend anhalten zu können, bzw. in den folgenden Stufen Signale beachten zu können, musst du die nächsten Züge vorausplanen und darfst den Zug nicht zu weit beschleunigen.
\end{framed}
\subsubsection*{Runde 5}
Beginnt in dieser Runde mit der Bremsung. Der Triebfahrzeugführer setzt den Schalthebel hierfür auf \SI{80}{\kilo\metre\per\hour} (2 Felder) und den Zug entsprechende Felder vor.
\subsubsection*{Runde 6}
Bremst den Zug weiter auf \SI{40}{\kilo\metre\per\hour} (1 Feld) ab und setzt ihn entsprechend vor.
\subsubsection*{Runde 7}
Beendet die Bremsung des Zuges indem der Triebfahrzeugführer den Schalthebel auf \SI{0}{\kilo\metre\per\hour} (0 Felder) verstellt. Im Schritt „Züge bewegen“ kann der Zug dementsprechend nicht bewegt werden. Dementsprechend muss auch nur den Zähler der Runden einmal gedrückt werden.
\subsection*{Ende des Tutorials}
Der Zug sollte jetzt am zweiten Bahnsteig auf den Feldern 11 und 12 stehen. Auf dem linken Zähler sollte eine 7 für die Anzahl der Runden und auf dem rechten Zähler eine 12 für die Anzahl der gefahrenen Felder zu sehen sein.
\begin{framed}\noindent
Wenn dies so ist, dann herzlichen Glückwunsch! Ihr habt das erste Tutorial erfolgreich abgeschlossen und könnt nun die Aufgaben im Level 1 selbstständig erledigen.
\end{framed}
\begin{framed}\noindent
Wenn dies nicht so ist, dann müsst Ihr noch einmal zurückgehen und überlegen, an welcher Stelle Ihr ggf. etwas vergessen haben könntet.
\end{framed}

956
logo/logo.eps Normal file
View File

@ -0,0 +1,956 @@
%!PS-Adobe-3.0 EPSF-3.0
%%HiResBoundingBox: 0.000000 0.000000 419.000000 403.000000
%APL_DSC_Encoding: UTF8
%APLProducer: (Version 10.15.7 (Build 19H2) Quartz PS Context)
%%Title: (Unknown)
%%Creator: (Unknown)
%%CreationDate: (Unknown)
%%For: (Unknown)
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%Pages: 1
%%BoundingBox: 0 0 419 403
%%EndComments
%%BeginProlog
%%BeginFile: cg-pdf.ps
%%Copyright: Copyright 2000-2004 Apple Computer Incorporated.
%%Copyright: All Rights Reserved.
currentpacking true setpacking
/cg_md 141 dict def
cg_md begin
/L3? languagelevel 3 ge def
/bd{bind def}bind def
/ld{load def}bd
/xs{exch store}bd
/xd{exch def}bd
/cmmtx matrix def
mark
/sc/setcolor
/scs/setcolorspace
/dr/defineresource
/fr/findresource
/T/true
/F/false
/d/setdash
/w/setlinewidth
/J/setlinecap
/j/setlinejoin
/M/setmiterlimit
/i/setflat
/rc/rectclip
/rf/rectfill
/rs/rectstroke
/f/fill
/f*/eofill
/sf/selectfont
/s/show
%/as/ashow
/xS/xshow
/yS/yshow
/xyS/xyshow
/S/stroke
/m/moveto
/l/lineto
/c/curveto
/h/closepath
/n/newpath
/q/gsave
/Q/grestore
counttomark 2 idiv
%dup (number of ld's = )print == flush % *** how many
{ld}repeat pop
/SC{ % CSname
/ColorSpace fr scs
}bd
/sopr /setoverprint where{pop/setoverprint}{/pop}ifelse ld
/soprm /setoverprintmode where{pop/setoverprintmode}{/pop}ifelse ld
/cgmtx matrix def
/sdmtx{cgmtx currentmatrix pop}bd
/CM {cgmtx setmatrix}bd % pop the ctm: our gstate ctm on host is now identity
/cm {cmmtx astore CM concat}bd % reset the matrix and then concat
/W{clip newpath}bd
/W*{eoclip newpath}bd
statusdict begin product end dup (HP) anchorsearch{
pop pop pop % pop off the search results
true
}{
pop % previous search result
(hp) anchorsearch{
pop pop true
}{
pop false
}ifelse
}ifelse
{ % HP is the product: we use this method of stroking because of a bug in their clone printers with certain T3 fonts
{
{ % charCode Wx Wy
pop pop % charCode
(0)dup 0 4 -1 roll put
F charpath
}cshow
}
}{
{F charpath}
}ifelse
/cply exch bd
/cps {cply stroke}bd
/pgsave 0 def
/bp{/pgsave save store}bd
/ep{pgsave restore showpage}def % dont' bind
/re{4 2 roll m 1 index 0 rlineto 0 exch rlineto neg 0 rlineto h}bd
/scrdict 10 dict def
/scrmtx matrix def
/patarray 0 def
/createpat{patarray 3 1 roll put}bd
/makepat{
scrmtx astore pop
gsave
initgraphics
CM
patarray exch get
scrmtx
makepattern
grestore
setpattern
}bd
/cg_BeginEPSF{
userdict save/cg_b4_Inc_state exch put
userdict/cg_endepsf/cg_EndEPSF load put
count userdict/cg_op_count 3 -1 roll put
countdictstack dup array dictstack userdict/cg_dict_array 3 -1 roll put
3 sub{end}repeat
/showpage {} def
0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
10 setmiterlimit [] 0 setdash newpath
false setstrokeadjust false setoverprint % don't use F
}bd
/cg_EndEPSF{
countdictstack 3 sub { end } repeat
cg_dict_array 3 1 index length 3 sub getinterval
{begin}forall
count userdict/cg_op_count get sub{pop}repeat
userdict/cg_b4_Inc_state get restore
F setpacking
}bd
/cg_biproc{currentfile/RunLengthDecode filter}bd
/cg_aiproc{currentfile/ASCII85Decode filter/RunLengthDecode filter}bd
/ImageDataSource 0 def
L3?{
/cg_mibiproc{pop pop/ImageDataSource{cg_biproc}def}bd
/cg_miaiproc{pop pop/ImageDataSource{cg_aiproc}def}bd
}{
/ImageBandMask 0 def
/ImageBandData 0 def
/cg_mibiproc{
string/ImageBandMask xs
string/ImageBandData xs
/ImageDataSource{[currentfile/RunLengthDecode filter dup ImageBandMask/readstring cvx
/pop cvx dup ImageBandData/readstring cvx/pop cvx]cvx bind}bd
}bd
/cg_miaiproc{
string/ImageBandMask xs
string/ImageBandData xs
/ImageDataSource{[currentfile/ASCII85Decode filter/RunLengthDecode filter
dup ImageBandMask/readstring cvx
/pop cvx dup ImageBandData/readstring cvx/pop cvx]cvx bind}bd
}bd
}ifelse
/imsave 0 def
/BI{save/imsave xd mark}bd
/EI{imsave restore}bd
/ID{
counttomark 2 idiv
dup 2 add % leave room for imagetype and imagematrix
dict begin
{def} repeat
pop % remove mark
/ImageType 1 def
/ImageMatrix[Width 0 0 Height neg 0 Height]def
currentdict dup/ImageMask known{ImageMask}{F}ifelse exch
% currentdict on stack
L3?{
dup/MaskedImage known
{
pop
<<
/ImageType 3
/InterleaveType 2
/DataDict currentdict
/MaskDict
<< /ImageType 1
/Width Width
/Height Height
/ImageMatrix ImageMatrix
/BitsPerComponent 1
/Decode [0 1]
currentdict/Interpolate known
{/Interpolate Interpolate}if
>>
>>
}if
}if
exch
{imagemask}{image}ifelse
end % pop imagedict from dict stack
}bd
/cguidfix{statusdict begin mark version end
{cvr}stopped{cleartomark 0}{exch pop}ifelse
2012 lt{dup findfont dup length dict begin
{1 index/FID ne 2 index/UniqueID ne and
{def} {pop pop} ifelse}forall
currentdict end definefont pop
}{pop}ifelse
}bd
/t_array 0 def
/t_i 0 def
/t_c 1 string def
/x_proc{ % x y
exch t_array t_i get add exch moveto
/t_i t_i 1 add store
}bd
/y_proc{ % x y
t_array t_i get add moveto
/t_i t_i 1 add store
}bd
/xy_proc{
% x y
t_array t_i 2 copy 1 add get 3 1 roll get
4 -1 roll add 3 1 roll add moveto
/t_i t_i 2 add store
}bd
/sop 0 def % don't bind sop
/cp_proc/x_proc ld % default moveto proc is for xwidths only
/base_charpath % string array
{
/t_array xs
/t_i 0 def
{ % char
t_c 0 3 -1 roll put
currentpoint
t_c cply sop
cp_proc
}forall
/t_array 0 def
}bd
/sop/stroke ld % default sop is stroke. Done here so we don't bind in /base_charpath
% default sop is stroke
/nop{}def
/xsp/base_charpath ld
/ysp{/cp_proc/y_proc ld base_charpath/cp_proc/x_proc ld}bd
/xysp{/cp_proc/xy_proc ld base_charpath/cp_proc/x_proc ld}bd
/xmp{/sop/nop ld /cp_proc/x_proc ld base_charpath/sop/stroke ld}bd
/ymp{/sop/nop ld /cp_proc/y_proc ld base_charpath/sop/stroke ld}bd
/xymp{/sop/nop ld /cp_proc/xy_proc ld base_charpath/sop/stroke ld}bd
/refnt{ % newname encoding fontname
findfont dup length dict copy dup
/Encoding 4 -1 roll put
definefont pop
}bd
/renmfont{ % newname fontname
findfont dup length dict copy definefont pop
}bd
L3? dup dup{save exch}if
% languagelevel2 ONLY code goes here
/Range 0 def
/DataSource 0 def
/val 0 def
/nRange 0 def
/mulRange 0 def
/d0 0 def
/r0 0 def
/di 0 def
/ri 0 def
/a0 0 def
/a1 0 def
/r1 0 def
/r2 0 def
/dx 0 def
/Nsteps 0 def
/sh3tp 0 def
/ymax 0 def
/ymin 0 def
/xmax 0 def
/xmin 0 def
/setupFunEval % funDict -- % this calculates and sets up a function dict for evaulation.
{
begin
/nRange Range length 2 idiv store
/mulRange % precompute the range data needed to map a sample value from the table to a range value
% this data looks like [ range0mul range0min range1mul range1min ... rangeN-1mul rangeN-1min ]
[
0 1 nRange 1 sub
{ % index
2 mul/nDim2 xd % 2*dimension# we are dealing with
Range nDim2 get % ymin
Range nDim2 1 add get % ymin ymax
1 index sub % ymin (ymax-ymin)
% xmin = 0, xmax = 255 (2^bitspersample - 1)
255 div % ymin (ymax-ymin)/(xmax - xmin)
exch % (ymax-ymin)/(xmax - xmin) ymin
}for
]store
end
}bd
/FunEval % val1 fundict -> comp1 comp2 ... compN
{
begin
% the value passed in is the base index into the table
nRange mul /val xd % compute the actual index to the table
% since there are nRange entries per base index
0 1 nRange 1 sub
{
dup 2 mul/nDim2 xd % dim
val % base value to use to do our lookup
add DataSource exch get % lookedupval
mulRange nDim2 get mul % lookedupval*(ymax-ymin)/(xmax-xmin)
mulRange nDim2 1 add get % lookedupval*(ymax-ymin)/(xmax-xmin) ymin
add % interpolated result
}for % comp1 comp2 ... compN
end
}bd
/max % a b -> max(a, b)
{
2 copy lt
{exch pop}{pop}ifelse
}bd
/sh2
{ % emulation of shading type 2. Assumes shading dictionary is top dictionary on the dict stack
/Coords load aload pop % x0 y0 x1 y1
3 index 3 index translate % origin is now at beginning point of shading
% x0 y0 x1 y1
3 -1 roll sub % x0 x1 y1-y0
3 1 roll exch % y1-y0 x1 x0
sub % y1-y0 x1-x0
2 copy
dup mul exch dup mul add sqrt % length of segment between two points
dup
scale
atan % atan (dy/dx)
%dup (rotation angle = )print ==
rotate % now line between 0,0 and 1,0 is the line perpendicular to which the axial lines are drawn
/Function load setupFunEval % may need to setup function dictionary by calling setupFunEval
% this is now specific to axial shadings. Compute the maximum bounds to fill
clippath {pathbbox}stopped {0 0 0 0}if newpath % x0 y0 x1 y1
/ymax xs
/xmax xs
/ymin xs
/xmin xs
currentdict/Extend known
{
/Extend load 0 get
{
0/Function load FunEval sc % evaluate the function to get a color and set it
xmin ymin xmin abs ymax ymin sub rectfill
}if
}if
% paint the rects. The sampling frequency is that of our table
/Nsteps/Function load/Size get 0 get 1 sub store
/dx 1 Nsteps div store
gsave
/di ymax ymin sub store
/Function load
% loop Nsteps + 1 times, incrementing the index by 1 each time
0 1 Nsteps
{
1 index FunEval sc
0 ymin dx di rectfill
dx 0 translate
}for
pop % pop our function
grestore % origin is back to start point
currentdict/Extend known
{
/Extend load 1 get
{
Nsteps/Function load FunEval sc % last element
1 ymin xmax 1 sub abs ymax ymin sub rectfill
}if
}if
}bd
/shp % this paints our shape for shading type 3
{ % x1 r1 x0 r0 -
4 copy
% fill interior arc
dup 0 gt{
0 exch a1 a0 arc
}{
pop 0 moveto
}ifelse
dup 0 gt{
0 exch a0 a1 arcn
}{
pop 0 lineto
}ifelse
fill
% fill exterior arc
dup 0 gt{
0 exch a0 a1 arc
}{
pop 0 moveto
}ifelse
dup 0 gt{
0 exch a1 a0 arcn
}{
pop 0 lineto
}ifelse
fill
}bd
/calcmaxs
{ % calculate maximum distance vector from origin to corner points
% of bbox
xmin dup mul ymin dup mul add sqrt % (xmin2 + ymin2)
xmax dup mul ymin dup mul add sqrt % (xmax2 + ymin2)
xmin dup mul ymax dup mul add sqrt % (xmin2 + ymax2)
xmax dup mul ymax dup mul add sqrt % (xmax2 + ymax2)
max max max % maximum value
}bd
/sh3
{ % emulation of shading type 3. Assumes shading dictionary is top dictionary on the dict stack
/Coords load aload pop % x0 y0 r1 x1 y1 r2
5 index 5 index translate % origin is now at first circle origin
3 -1 roll 6 -1 roll sub % y0 r1 y1 r2 dx
3 -1 roll 5 -1 roll sub % r1 r2 dx dy
2 copy dup mul exch dup mul add sqrt
/dx xs % r1 r2 dx dy
2 copy 0 ne exch 0 ne or
{
% r1 r2 dx dy
exch atan rotate % we are now rotated so dy is zero and positive values of dx move us as expected
}{
pop pop
}ifelse
% r1 r2
/r2 xs
/r1 xs
/Function load
dup/Size get 0 get 1 sub % this is the size of our table minus 1
/Nsteps xs % at some point we should optimize this better so NSteps is based on needed steps for the device
setupFunEval % may need to setup function dictionary by calling setupFunEval
% determine the case:
% case 0: circle1 inside circle2
% case 1: circle 2 inside circle 1
% case 2: r1 = r2
% case 3: r1 != r2
dx r2 add r1 lt{
% circle 2 inside of circle 1
0
}{
dx r1 add r2 le
{ % circle 1 inside of circle 2
1
}{ % circles don't contain each other
r1 r2 eq
{ % equal
2
}{ % r1 != r2
3
}ifelse
}ifelse
}ifelse
/sh3tp xs % sh3tp has the number of our different cases
clippath {pathbbox}stopped {0 0 0 0}if
newpath % x0 y0 x1 y1
/ymax xs
/xmax xs
/ymin xs
/xmin xs
% Arc angle atan( sqrt((dx*dx + dy*dy) - dr*dr), dr)
dx dup mul r2 r1 sub dup mul sub dup 0 gt
{
sqrt r2 r1 sub atan
/a0 exch 180 exch sub store
/a1 a0 neg store
}{
pop
/a0 0 store
/a1 360 store
}ifelse
currentdict/Extend known
{
/Extend load 0 get r1 0 gt and % no need to extend if the radius of the first end is 0
{
0/Function load FunEval sc % evaluate the function to get a color and set it
% case 0: circle1 inside circle2
% case 1: circle 2 inside circle 1
% case 2: circles don't contain each other and r1 == r2
% case 3: circles don't contain each other and r1 != r2
{
{ % case 0
dx 0 r1 360 0 arcn
xmin ymin moveto
xmax ymin lineto
xmax ymax lineto
xmin ymax lineto
xmin ymin lineto
eofill % for the bigger radius we fill everything except our circle
}
{ % case 1
r1 0 gt{0 0 r1 0 360 arc fill}if
}
{ % case 2
% r1 == r2, extend 0
% r3 = r, x3 = -(abs(minx) + r), x1 = 0
% x(i+1) r(i+1) x(i) r(i) shp
0 r1 xmin abs r1 add neg r1 shp
}
{ % case 3
% no containment, r1 != r2
r2 r1 gt{ % the endpoint we are drawing is that with a circle of zero radius
% x(i+1) r(i+1) x(i) r(i) shp
0 r1
r1 neg r2 r1 sub div dx mul % this is point of beginning circle
0 % point of ending circle
shp % takes x(i+1) r(i+1) x(i) r(i)
}{ % the first circle is the bigger of the two
% we find a circle on our line which is outside the bbox in the
% negative direction
% x(i+1) r(i+1) x(i) r(i) shp
0 r1 calcmaxs % 0 r1 maxs
dup
% calculating xs: (-(maxs+r2)*x2)/(x2-(r1-r2))
r2 add dx mul dx r1 r2 sub sub div
neg % maxs xs'
exch 1 index % xs' maxs xs'
abs exch sub
shp
}ifelse
}
}sh3tp get exec % execute the extend at beginning proc for our shading type
}if
}if
% now do the shading
/d0 0 store
/r0 r1 store
/di dx Nsteps div store
/ri r2 r1 sub Nsteps div store
/Function load
0 1 Nsteps
{ % function t(i)
1 index FunEval sc
d0 di add r0 ri add d0 r0 shp
{
% fill interior arc
d0 0 r0 a1 a0 arc
d0 di add 0 r0 ri add a0 a1 arcn
fill
% fill exterior arc
d0 0 r0 a0 a1 arc
d0 di add 0 r0 ri add a1 a0 arcn
fill
}pop
% advance to next
/d0 d0 di add store
/r0 r0 ri add store
}for
pop % pop our function dict
% handle Extend
currentdict/Extend known
{
/Extend load 1 get r2 0 gt and % no need to extend if the radius of the last end is 0
{
Nsteps/Function load FunEval sc % last element
% case 0: circle1 inside circle2
% case 1: circle 2 inside circle 1
% case 2: circles don't contain each other and r1 == r2
% case 3: circles don't contain each other and r1 != r2
{
{
dx 0 r2 0 360 arc fill
}
{
dx 0 r2 360 0 arcn
xmin ymin moveto
xmax ymin lineto
xmax ymax lineto
xmin ymax lineto
xmin ymin lineto
eofill % for the bigger radius we fill everything except our circle
}
{ % r1 == r2, extend 1
% r3 = r, x3 = (abs(xmax) + r), x1 = dx
% x(i+1) r(i+1) x(i) r(i) shp
xmax abs r1 add r1 dx r1 shp
}
{ % no containment, r1 != r2
r2 r1 gt{
% we find a circle on our line which is outside the bbox in the
% positive direction
% x(i+1) r(i+1) x(i) r(i) shp
calcmaxs dup % maxs maxs
% calculating xs: ((maxs+r1)*x2)/(x2-(r2-r1))
r1 add dx mul dx r2 r1 sub sub div % maxs xs
exch 1 index % xs maxs xs
exch sub
dx r2
shp
}{ % the endpoint we are drawing is that with a circle of zero radius
% x(i+1) r(i+1) x(i) r(i) shp
r1 neg r2 r1 sub div dx mul % this is point of ending circle
0 % radius of ending circle
dx % point of starting circle
r2 % radius of starting circle
shp
}ifelse
}
}
sh3tp get exec % execute the extend at end proc for our shading type
}if
}if
}bd
/sh % emulation of shfill operator for type 2 and type 3 shadings based on type 0 functions
{ % shadingDict --
begin
/ShadingType load dup dup 2 eq exch 3 eq or
{ % shadingtype
gsave
newpath
/ColorSpace load scs
currentdict/BBox known
{
/BBox load aload pop % llx lly urx ury
2 index sub % llx lly urx ury-lly
3 index % llx lly urx ury-lly llx
3 -1 roll exch sub
exch rectclip
}if
2 eq
{sh2}{sh3}ifelse
grestore
}{
% shadingtype
pop
(DEBUG: shading type unimplemented\n)print flush
}ifelse
end
}bd
% end of language level 2 ONLY code
{restore}if not dup{save exch}if
% languagelevel3 ONLY code goes here
L3?{ % we do these loads conditionally or else they will fail on a level 2 printer
/sh/shfill ld
/csq/clipsave ld
/csQ/cliprestore ld
}if
{restore}if
%currentdict dup maxlength exch length sub (number of extra slots in md = )print == flush % *** how many entries are free
end
setpacking
% count 0 ne { pstack(***extras on stack during prolog execution***\n)print flush}if % *** BARK if anything is left on stack
%%EndFile
%%EndProlog
%%BeginSetup
%%EndSetup
%%Page: 1 1
%%PageBoundingBox: 0 0 419 403
%%BeginPageSetup
cg_md begin
bp
sdmtx
[ /CIEBasedABC 4 dict dup begin
/WhitePoint [ 0.9505 1.0000 1.0891 ] def
/DecodeABC [
{ 1.0 0.0 3 -1 roll 1 index 1 index le { exch pop} { pop } ifelse
1 index 1 index ge { exch pop } { pop } ifelse <
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000001010101010101010101010101
0101010101010101010101010101010101010101010101020202020202020202
0202020202020202020202020202020202030303030303030303030303030303
0303030303030304040404040404040404040404040404040404050505050505
0505050505050505050506060606060606060606060606060607070707070707
0707070707070708080808080808080808080808090909090909090909090909
0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c
0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f10101010
1010101010111111111111111112121212121212121313131313131313141414
1414141414151515151515151616161616161616171717171717171818181818
18181919191919191a1a1a1a1a1a1a1b1b1b1b1b1b1c1c1c1c1c1c1c1d1d1d1d
1d1d1e1e1e1e1e1e1f1f1f1f1f1f202020202020212121212121222222222223
2323232323242424242425252525252526262626262727272727282828282829
292929292a2a2a2a2a2b2b2b2b2b2c2c2c2c2c2d2d2d2d2d2e2e2e2e2e2f2f2f
2f2f303030303131313131323232323333333333343434343535353535363636
36373737373838383839393939393a3a3a3a3b3b3b3b3c3c3c3c3d3d3d3d3e3e
3e3e3f3f3f3f4040404041414141424242424343434444444445454545464646
4647474748484848494949494a4a4a4b4b4b4b4c4c4c4d4d4d4d4e4e4e4f4f4f
4f50505051515151525252535353535454545555555656565657575758585859
59595a5a5a5a5b5b5b5c5c5c5d5d5d5e5e5e5f5f5f6060606061616162626263
63636464646565656666666767676868686969696a6a6a6b6b6b6c6c6d6d6d6e
6e6e6f6f6f707070717171727273737374747475757576767677777878787979
797a7a7b7b7b7c7c7c7d7d7e7e7e7f7f7f808081818182828283838484848585
86868687878888888989898a8a8b8b8b8c8c8d8d8d8e8e8f8f90909091919292
9293939494949595969697979798989999999a9a9b9b9c9c9c9d9d9e9e9f9f9f
a0a0a1a1a2a2a3a3a3a4a4a5a5a6a6a6a7a7a8a8a9a9aaaaabababacacadadae
aeafafb0b0b0b1b1b2b2b3b3b4b4b5b5b6b6b6b7b7b8b8b9b9bababbbbbcbcbd
bdbebebebfbfc0c0c1c1c2c2c3c3c4c4c5c5c6c6c7c7c8c8c9c9cacacbcbcccc
cdcdcececfcfd0d0d1d1d2d2d3d3d4d4d5d5d6d6d7d7d8d8d9d9dadadbdcdcdd
dddededfdfe0e0e1e1e2e2e3e3e4e4e5e6e6e7e7e8e8e9e9eaeaebebecededee
eeefeff0f0f1f1f2f3f3f4f4f5f5f6f6f7f8f8f9f9fafafbfcfcfdfdfefeffff
> dup length 1 sub 3 -1 roll mul dup dup floor cvi exch ceiling
cvi 3 index exch get 4 -1 roll 3 -1 roll get
dup 3 1 roll sub 3 -1 roll dup floor cvi sub mul add 255 div } bind
{ 1.0 0.0 3 -1 roll 1 index 1 index le { exch pop} { pop } ifelse
1 index 1 index ge { exch pop } { pop } ifelse <
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000001010101010101010101010101
0101010101010101010101010101010101010101010101020202020202020202
0202020202020202020202020202020202030303030303030303030303030303
0303030303030304040404040404040404040404040404040404050505050505
0505050505050505050506060606060606060606060606060607070707070707
0707070707070708080808080808080808080808090909090909090909090909
0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c
0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f10101010
1010101010111111111111111112121212121212121313131313131313141414
1414141414151515151515151616161616161616171717171717171818181818
18181919191919191a1a1a1a1a1a1a1b1b1b1b1b1b1c1c1c1c1c1c1c1d1d1d1d
1d1d1e1e1e1e1e1e1f1f1f1f1f1f202020202020212121212121222222222223
2323232323242424242425252525252526262626262727272727282828282829
292929292a2a2a2a2a2b2b2b2b2b2c2c2c2c2c2d2d2d2d2d2e2e2e2e2e2f2f2f
2f2f303030303131313131323232323333333333343434343535353535363636
36373737373838383839393939393a3a3a3a3b3b3b3b3c3c3c3c3d3d3d3d3e3e
3e3e3f3f3f3f4040404041414141424242424343434444444445454545464646
4647474748484848494949494a4a4a4b4b4b4b4c4c4c4d4d4d4d4e4e4e4f4f4f
4f50505051515151525252535353535454545555555656565657575758585859
59595a5a5a5a5b5b5b5c5c5c5d5d5d5e5e5e5f5f5f6060606061616162626263
63636464646565656666666767676868686969696a6a6a6b6b6b6c6c6d6d6d6e
6e6e6f6f6f707070717171727273737374747475757576767677777878787979
797a7a7b7b7b7c7c7c7d7d7e7e7e7f7f7f808081818182828283838484848585
86868687878888888989898a8a8b8b8b8c8c8d8d8d8e8e8f8f90909091919292
9293939494949595969697979798989999999a9a9b9b9c9c9c9d9d9e9e9f9f9f
a0a0a1a1a2a2a3a3a3a4a4a5a5a6a6a6a7a7a8a8a9a9aaaaabababacacadadae
aeafafb0b0b0b1b1b2b2b3b3b4b4b5b5b6b6b6b7b7b8b8b9b9bababbbbbcbcbd
bdbebebebfbfc0c0c1c1c2c2c3c3c4c4c5c5c6c6c7c7c8c8c9c9cacacbcbcccc
cdcdcececfcfd0d0d1d1d2d2d3d3d4d4d5d5d6d6d7d7d8d8d9d9dadadbdcdcdd
dddededfdfe0e0e1e1e2e2e3e3e4e4e5e6e6e7e7e8e8e9e9eaeaebebecededee
eeefeff0f0f1f1f2f3f3f4f4f5f5f6f6f7f8f8f9f9fafafbfcfcfdfdfefeffff
> dup length 1 sub 3 -1 roll mul dup dup floor cvi exch ceiling
cvi 3 index exch get 4 -1 roll 3 -1 roll get
dup 3 1 roll sub 3 -1 roll dup floor cvi sub mul add 255 div } bind
{ 1.0 0.0 3 -1 roll 1 index 1 index le { exch pop} { pop } ifelse
1 index 1 index ge { exch pop } { pop } ifelse <
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000001010101010101010101010101
0101010101010101010101010101010101010101010101020202020202020202
0202020202020202020202020202020202030303030303030303030303030303
0303030303030304040404040404040404040404040404040404050505050505
0505050505050505050506060606060606060606060606060607070707070707
0707070707070708080808080808080808080808090909090909090909090909
0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c
0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f10101010
1010101010111111111111111112121212121212121313131313131313141414
1414141414151515151515151616161616161616171717171717171818181818
18181919191919191a1a1a1a1a1a1a1b1b1b1b1b1b1c1c1c1c1c1c1c1d1d1d1d
1d1d1e1e1e1e1e1e1f1f1f1f1f1f202020202020212121212121222222222223
2323232323242424242425252525252526262626262727272727282828282829
292929292a2a2a2a2a2b2b2b2b2b2c2c2c2c2c2d2d2d2d2d2e2e2e2e2e2f2f2f
2f2f303030303131313131323232323333333333343434343535353535363636
36373737373838383839393939393a3a3a3a3b3b3b3b3c3c3c3c3d3d3d3d3e3e
3e3e3f3f3f3f4040404041414141424242424343434444444445454545464646
4647474748484848494949494a4a4a4b4b4b4b4c4c4c4d4d4d4d4e4e4e4f4f4f
4f50505051515151525252535353535454545555555656565657575758585859
59595a5a5a5a5b5b5b5c5c5c5d5d5d5e5e5e5f5f5f6060606061616162626263
63636464646565656666666767676868686969696a6a6a6b6b6b6c6c6d6d6d6e
6e6e6f6f6f707070717171727273737374747475757576767677777878787979
797a7a7b7b7b7c7c7c7d7d7e7e7e7f7f7f808081818182828283838484848585
86868687878888888989898a8a8b8b8b8c8c8d8d8d8e8e8f8f90909091919292
9293939494949595969697979798989999999a9a9b9b9c9c9c9d9d9e9e9f9f9f
a0a0a1a1a2a2a3a3a3a4a4a5a5a6a6a6a7a7a8a8a9a9aaaaabababacacadadae
aeafafb0b0b0b1b1b2b2b3b3b4b4b5b5b6b6b6b7b7b8b8b9b9bababbbbbcbcbd
bdbebebebfbfc0c0c1c1c2c2c3c3c4c4c5c5c6c6c7c7c8c8c9c9cacacbcbcccc
cdcdcececfcfd0d0d1d1d2d2d3d3d4d4d5d5d6d6d7d7d8d8d9d9dadadbdcdcdd
dddededfdfe0e0e1e1e2e2e3e3e4e4e5e6e6e7e7e8e8e9e9eaeaebebecededee
eeefeff0f0f1f1f2f3f3f4f4f5f5f6f6f7f8f8f9f9fafafbfcfcfdfdfefeffff
> dup length 1 sub 3 -1 roll mul dup dup floor cvi exch ceiling
cvi 3 index exch get 4 -1 roll 3 -1 roll get
dup 3 1 roll sub 3 -1 roll dup floor cvi sub mul add 255 div } bind
] def
/MatrixABC [ 0.4124 0.2126 0.0193 0.3576 0.7151 0.1192 0.1805 0.0722 0.9508 ] def
/RangeLMN [ 0.0 0.9505 0.0 1.0000 0.0 1.0891 ] def
end ] /Cs1 exch/ColorSpace dr pop
%%EndPageSetup
/Cs1 SC
0 0 0 sc
q
0 0 419 403 rc
326.26038 184.29385 m
356.0853 184.29385 l
357.74216 184.29385 359.0853 185.63699 359.0853 187.29385 c
359.0853 294.67969 l
359.0853 296.33655 357.74216 297.67969 356.0853 297.67969 c
55.786072 297.67969 l
54.129215 297.67969 52.786072 296.33655 52.786072 294.67969 c
52.786072 187.29385 l
52.786072 185.63699 54.129215 184.29385 55.786072 184.29385 c
85.610985 184.29385 l
157.36644 212.64038 254.50491 212.64038 326.26038 184.29385 c
h
174.75458 282.54681 m
237.11678 282.54681 l
205.93568 220.1846 l
h
183.25851 277.04877 m
205.93568 231.69444 l
228.61284 277.04877 l
h
269.54593 279.71216 m
326.23883 279.71216 l
326.23883 223.01924 l
269.54593 223.01924 l
h
274.9288 274.38144 m
274.9288 229.02711 l
320.28311 229.02711 l
320.28311 274.38144 l
h
141.35805 273.41403 m
153.53508 261.23706 153.53508 241.49431 141.35805 229.31734 c
129.18109 217.14032 109.43833 217.14032 97.261368 229.31734 c
85.084335 241.49431 85.084335 261.23706 97.261368 273.41403 c
109.43833 285.59106 129.18109 285.59106 141.35805 273.41403 c
137.34926 269.40524 m
127.38629 279.36826 111.23313 279.36826 101.27016 269.40524 c
91.307129 259.44226 91.307129 243.28911 101.27016 233.32614 c
111.23313 223.36311 127.38629 223.36311 137.34926 233.32614 c
147.31229 243.28911 147.31229 259.44226 137.34926 269.40524 c
f
418.52942 180.16542 m
211.48883 180.16542 l
211.48883 165.70186 l
418.52942 165.70186 l
h
363.28677 66.779587 m
370.7829 70.812607 377.66077 75.68399 383.82822 81.243134 c
211.48883 81.243134 l
211.48883 66.779587 l
h
393.22986 90.880959 m
408.60849 108.81631 417.74771 131.72375 418.48154 156.06404 c
211.48883 156.06404 l
211.48883 146.14966 l
230.67397 146.14966 l
241.47256 153.73062 256.47626 152.69579 266.12683 143.04517 c
276.93655 132.23547 276.93655 114.70952 266.12683 103.89983 c
256.47626 94.249214 241.47256 93.214378 230.67397 100.79533 c
211.48883 100.79533 l
211.48883 90.880959 l
h
393.22986 90.880959 m
f
55.175491 66.779587 m
200.9675 66.779587 l
200.9675 81.298248 l
34.789341 81.298248 l
40.907413 75.728767 47.733223 70.8395 55.175491 66.779587 c
h
0.50860685 156.11916 m
1.1615433 131.80638 10.201839 108.90488 25.474405 90.936073 c
200.9675 90.936073 l
200.9675 107.88195 l
231.86752 107.88195 l
240.20546 100.14137 253.24254 100.32724 261.3548 108.43954 c
269.65732 116.74202 269.65732 130.20299 261.3548 138.50546 c
253.24254 146.61777 240.20546 146.80362 231.86752 139.06305 c
200.9675 139.06305 l
200.9675 156.11916 l
h
0.47061083 180.16542 m
0.47061083 165.75699 l
200.9675 165.75699 l
200.9675 180.16542 l
h
0.47061083 180.16542 m
f
0.14803059 156.11916 m
0.71611243 131.83502 9.6528988 108.93968 24.814613 90.936073 c
35.782597 90.936073 l
19.56773 108.6022 9.6517916 131.55844 8.2903671 156.11916 c
h
418.44049 156.11916 m
411.04025 156.11916 l
409.6788 131.55844 399.76288 108.6022 383.548 90.936073 c
393.77393 90.936073 l
408.93564 108.93968 417.87241 131.83502 418.44049 156.11916 c
h
418.46933 165.75699 m
418.46933 243.84348 l
418.46933 283.28336 396.36798 319.39688 361.24777 337.34332 c
257.07269 390.57678 l
257.07269 390.57678 l
227.06578 405.91031 191.52275 405.91031 161.51584 390.57678 c
57.340767 337.34332 l
22.220547 319.39688 0.1191921 283.28336 0.1191921 243.84348 c
0.1191921 165.75699 l
8.1289854 165.75699 l
8.1289854 239.40097 l
8.1289854 278.84085 30.230341 314.95441 65.350563 332.90082 c
161.88687 382.2309 l
161.88687 382.2309 l
161.88687 382.2309 161.88687 382.2309 161.88687 382.2309 c
161.88689 382.2309 l
191.8938 397.56442 227.43681 397.56442 257.44373 382.2309 c
257.44373 382.2309 l
353.98004 332.90082 l
389.10025 314.95441 411.20163 278.84085 411.20163 239.40097 c
411.20163 165.75699 l
h
209.29427 0.35233861 m
209.29427 0.35233861 209.29427 0.35233861 209.29427 0.35233861 c
225.68175 0.35233831 242.06923 4.1857204 257.07269 11.852486 c
257.07269 11.852489 l
361.24777 65.085953 l
369.83801 69.475563 377.64935 74.952049 384.54892 81.298248 c
373.43982 81.298248 l
367.52393 76.366508 361.01303 72.044113 353.98004 68.450264 c
257.44373 19.120203 l
242.44028 11.453438 226.0528 7.6200552 209.6653 7.6200552 c
209.6653 7.6200552 209.6653 7.6200552 209.6653 7.6200552 c
193.27782 7.6200547 176.89034 11.453437 161.88689 19.120201 c
65.350563 68.450264 l
58.317577 72.044113 51.806675 76.366508 45.890789 81.298248 c
34.039597 81.298248 l
40.939171 74.952049 48.750526 69.475563 57.340759 65.085953 c
161.51584 11.852488 l
176.5193 4.1857219 192.90678 0.35233891 209.29427 0.35233861 c
h
209.29427 0.35233861 m
f
ep
end
%%Trailer
%%EOF

BIN
logo/logo.pdf Normal file

Binary file not shown.

BIN
logo/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 KiB

26
logo/logo.svg Normal file
View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.1" xmlns:xl="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="1366.1192 769.9231 418.41023 401.7246" width="418.41023" height="401.7246">
<defs/>
<metadata> Produced by OmniGraffle 7.17.5\n2020-09-19 11:24:29 +0000</metadata>
<g id="Logo" stroke="none" stroke-dasharray="none" fill="none" fill-opacity="1" stroke-opacity="1">
<title>Logo</title>
<g id="Logo_Layer_1">
<title>Layer 1</title>
<g id="Group_98">
<g id="Graphic_96">
<path d="M 1692.2604 987.7061 L 1722.0853 987.7061 C 1723.7421 987.7061 1725.0853 986.363 1725.0853 984.7061 L 1725.0853 877.3203 C 1725.0853 875.6635 1723.7421 874.3203 1722.0853 874.3203 L 1421.786 874.3203 C 1420.1292 874.3203 1418.786 875.6635 1418.786 877.3203 L 1418.786 984.7061 C 1418.786 986.363 1420.1292 987.7061 1421.786 987.7061 L 1451.611 987.7061 C 1523.3664 959.3596 1620.505 959.3596 1692.2604 987.7061 Z M 1540.7546 889.4532 L 1603.1168 889.4532 L 1571.9357 951.8154 Z M 1549.2585 894.9512 L 1571.9357 940.3056 L 1594.6128 894.9512 Z M 1635.546 892.2878 L 1692.2388 892.2878 L 1692.2388 948.9808 L 1635.546 948.9808 Z M 1640.9288 897.6185 L 1640.9288 942.9729 L 1686.2831 942.9729 L 1686.2831 897.6185 Z M 1507.358 898.586 C 1519.535 910.7629 1519.535 930.5057 1507.358 942.6827 C 1495.181 954.8597 1475.4383 954.8597 1463.2614 942.6827 C 1451.0843 930.5057 1451.0843 910.7629 1463.2614 898.586 C 1475.4383 886.4089 1495.181 886.4089 1507.358 898.586 M 1503.3493 902.5948 C 1493.3863 892.6317 1477.2331 892.6317 1467.2702 902.5948 C 1457.3071 912.5577 1457.3071 928.7109 1467.2702 938.6739 C 1477.2331 948.6369 1493.3863 948.6369 1503.3493 938.6739 C 1513.3123 928.7109 1513.3123 912.5577 1503.3493 902.5948" fill="black"/>
</g>
<g id="Graphic_95">
<path d="M 1784.5294 991.8346 L 1577.4888 991.8346 L 1577.4888 1006.2981 L 1784.5294 1006.2981 Z M 1729.2868 1105.2204 C 1736.783 1101.1874 1743.6608 1096.316 1749.8282 1090.7569 L 1577.4888 1090.7569 L 1577.4888 1105.2204 Z M 1759.2299 1081.119 C 1774.6085 1063.1837 1783.7477 1040.2762 1784.4815 1015.936 L 1577.4888 1015.936 L 1577.4888 1025.8503 L 1596.674 1025.8503 C 1607.4726 1018.2694 1622.4763 1019.3042 1632.1268 1028.9548 C 1642.9366 1039.7645 1642.9366 1057.2905 1632.1268 1068.1002 C 1622.4763 1077.7508 1607.4726 1078.7856 1596.674 1071.2047 L 1577.4888 1071.2047 L 1577.4888 1081.119 Z" fill="black"/>
</g>
<g id="Graphic_94">
<path d="M 1421.1755 1105.2204 L 1566.9675 1105.2204 L 1566.9675 1090.7017 L 1400.7893 1090.7017 C 1406.9074 1096.2712 1413.7332 1101.1605 1421.1755 1105.2204 Z M 1366.5086 1015.8808 C 1367.1615 1040.1936 1376.2018 1063.0951 1391.4744 1081.0639 L 1566.9675 1081.0639 L 1566.9675 1064.118 L 1597.8675 1064.118 C 1606.2055 1071.8586 1619.2425 1071.6728 1627.3548 1063.5605 C 1635.6573 1055.258 1635.6573 1041.797 1627.3548 1033.4945 C 1619.2425 1025.3822 1606.2055 1025.1964 1597.8675 1032.937 L 1566.9675 1032.937 L 1566.9675 1015.8808 Z M 1366.4706 991.8346 L 1366.4706 1006.243 L 1566.9675 1006.243 L 1566.9675 991.8346 Z" fill="black"/>
</g>
<g id="Graphic_93">
<path d="M 1366.148 1015.8808 C 1366.7161 1040.165 1375.6529 1063.0603 1390.8146 1081.0639 L 1401.7826 1081.0639 C 1385.5677 1063.3978 1375.6518 1040.4416 1374.2904 1015.8808 Z M 1784.4405 1015.8808 L 1777.0402 1015.8808 C 1775.6788 1040.4416 1765.7629 1063.3978 1749.548 1081.0639 L 1759.774 1081.0639 C 1774.9356 1063.0603 1783.8724 1040.165 1784.4405 1015.8808 Z M 1784.4693 1006.243 L 1784.4693 928.1565 C 1784.4693 888.7166 1762.368 852.6031 1727.2478 834.6567 L 1623.0727 781.4232 L 1623.0727 781.4232 C 1593.0658 766.0897 1557.5228 766.0897 1527.5158 781.4232 L 1423.3408 834.6567 C 1388.2205 852.6031 1366.1192 888.7166 1366.1192 928.1565 L 1366.1192 1006.243 L 1374.129 1006.243 L 1374.129 932.599 C 1374.129 893.1591 1396.2303 857.0456 1431.3506 839.0992 L 1527.8869 789.7691 L 1527.8869 789.7691 C 1527.8869 789.7691 1527.8869 789.7691 1527.8869 789.7691 L 1527.8869 789.7691 C 1557.8938 774.4356 1593.4368 774.4356 1623.4437 789.7691 L 1623.4437 789.7691 L 1719.98 839.0992 C 1755.1003 857.0456 1777.2016 893.1591 1777.2016 932.599 L 1777.2016 1006.243 Z M 1575.2943 1171.6477 C 1575.2943 1171.6477 1575.2943 1171.6477 1575.2943 1171.6477 C 1591.6817 1171.6477 1608.0692 1167.8143 1623.0727 1160.1475 L 1623.0727 1160.1475 L 1727.2478 1106.914 C 1735.838 1102.5244 1743.6494 1097.048 1750.549 1090.7017 L 1739.4398 1090.7017 C 1733.524 1095.6335 1727.013 1099.9559 1719.98 1103.5497 L 1623.4437 1152.8798 C 1608.4403 1160.5466 1592.0528 1164.38 1575.6653 1164.38 C 1575.6653 1164.38 1575.6653 1164.38 1575.6653 1164.38 C 1559.2778 1164.38 1542.8903 1160.5466 1527.8869 1152.8798 L 1431.3506 1103.5497 C 1424.3176 1099.9559 1417.8067 1095.6335 1411.8908 1090.7017 L 1400.0396 1090.7017 C 1406.9392 1097.048 1414.7505 1102.5244 1423.3408 1106.914 L 1527.5158 1160.1475 C 1542.5193 1167.8143 1558.9068 1171.6477 1575.2943 1171.6477 Z" fill="black"/>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

View File

@ -12,7 +12,7 @@
\def\ROOT{./..}
\usepackage{material}
\input{\ROOT/src/signal_aspects.tikz}
\input{\ROOT/handout/figures/signal_aspects.tikz}
\newlength{\trainlength}\setlength{\trainlength}{20cm}
\newlength{\trainheight}\setlength{\trainheight}{3cm}
@ -77,7 +77,7 @@
}
\begin{document}
\selectlanguage{english} % currently supported: english, ngerman
\selectlanguage{ngerman} % currently supported: english, ngerman
\tikzset{every path/.style={ultra thick}}
\begin{frame}
\begin{tikzpicture}[font=\sffamily]
@ -137,7 +137,7 @@
\draw (F1) -- (F6) -- (F5) -- (F4);
%
\end{tikzpicture}
\input{\ROOT/frontmatter/copyright.tex}
\input{\ROOT/handout/frontmatter/copyright.tex}
\end{frame}
\begin{frame}
\IfLanguage{english}{\Huge \textcolor{blue}{Control Lever:}}
@ -147,7 +147,6 @@
\pic at (0,0) {lever_positions};
\end{scope}
\end{tikzpicture}
\vfill
\input{\ROOT/tables/game_procedure.tex}
\vfill\input{\ROOT/handout/tables/game_procedure.tex}
\end{frame}
\end{document}

Binary file not shown.

View File

@ -12,7 +12,7 @@
\def\ROOT{./..}
\usepackage{material}
\input{\ROOT/src/signal_aspects.tikz}
\input{\ROOT/handout/figures/signal_aspects.tikz}
\newlength{\trainlength}\setlength{\trainlength}{20cm}
\newlength{\trainheight}\setlength{\trainheight}{3cm}
@ -83,7 +83,7 @@
}
\begin{document}
\selectlanguage{english} % currently supported: english, ngerman
\selectlanguage{ngerman} % currently supported: english, ngerman
\tikzset{every path/.style={ultra thick}}
\begin{frame}
\begin{tikzpicture}[font=\sffamily]
@ -150,7 +150,7 @@
\draw (F1) -- (F6) -- (F5) -- (F4);
%
\end{tikzpicture}
\input{\ROOT/frontmatter/copyright.tex}
\input{\ROOT/handout/frontmatter/copyright.tex}
\end{frame}
\begin{frame}
\begin{tikzpicture}[font=\sffamily]
@ -217,7 +217,6 @@
\pic at (0,0) {lever_positions};
\end{scope}
\end{tikzpicture}
\vfill
\input{\ROOT/tables/game_procedure.tex}
\vfill\input{\ROOT/handout/tables/game_procedure.tex}
\end{frame}
\end{document}

Binary file not shown.

View File

@ -12,7 +12,7 @@
\def\ROOT{./..}
\usepackage{material}
\input{\ROOT/src/signal_aspects.tikz}
\input{\ROOT/handout/figures/signal_aspects.tikz}
\newlength{\trainlength}\setlength{\trainlength}{12cm}
\newlength{\trainheight}\setlength{\trainheight}{3cm}
@ -25,14 +25,14 @@
\draw[->,>=latex,line width=1.5pt,green] ( 1.0,0) .. controls ( 2,-1.0) and ( 6,-1.0) .. ( 7.0,0);
\draw[->,>=latex,line width=1.5pt,green] ( 4.5,0) .. controls ( 5,-0.5) and ( 6,-0.5) .. ( 6.5,0);
\draw[->,>=latex,line width=1.5pt,green] ( 7.5,0) .. controls ( 8,-0.5) and ( 9,-0.5) .. ( 9.5,0);
\draw[->,>=latex,line width=1.5pt,green] (10.5,0) .. controls (11,-0.5) and (12,-0.5) .. (12.5,0);
% \draw[->,>=latex,line width=1.5pt,green] (10.5,0) .. controls (11,-0.5) and (12,-0.5) .. (12.5,0);
%
\draw[<-,>=latex,line width=1.5pt,green] ( 1.5,2) .. controls ( 2,2.5) and ( 3,2.5) .. ( 3.5,2);
\draw[<-,>=latex,line width=1.5pt,green] ( 4.5,2) .. controls ( 5,2.5) and ( 6,2.5) .. ( 6.5,2);
\draw[<-,>=latex,line width=1.5pt,green] ( 7.5,2) .. controls ( 8,2.5) and ( 9,2.5) .. ( 9.5,2);
\draw[<-,>=latex,line width=1.5pt,green] (10.5,2) .. controls (11,2.5) and (12,2.5) .. (12.5,2);
% \draw[<-,>=latex,line width=1.5pt,green] (10.5,2) .. controls (11,2.5) and (12,2.5) .. (12.5,2);
% lever positiions
\foreach \x in {0,3,6,9,12}
\foreach \x in {0,3,6,9}
\draw [fill=white] (\x,0) rectangle ++(2,2);
% labels
\node[align=center] at ( 1,1.6) {\si{\kilo\metre\per\hour}};
@ -59,12 +59,6 @@
\IfLanguage{english}{fields}
\IfLanguage{ngerman}{Felder}
};
\node[align=center] at (13,1.6) {\si{\kilo\metre\per\hour}};
\node[align=center] at (13,1 ) {\Huge $160$};
\node[align=center] at (13,0.3) {\Large \color{blue} $4$
\IfLanguage{english}{fields}
\IfLanguage{ngerman}{Felder}
};
};
}
@ -129,7 +123,7 @@
\draw (F1) -- (F6) -- (F5) -- (F4);
%
\end{tikzpicture}
\input{\ROOT/frontmatter/copyright.tex}
\input{\ROOT/handout/frontmatter/copyright.tex}
\end{frame}
\begin{frame}
\IfLanguage{english}{\Huge \textcolor{blue}{Control Lever:}}
@ -139,7 +133,6 @@
\pic at (0,0) {lever_positions};
\end{scope}
\end{tikzpicture}
\vfill
\input{\ROOT/tables/game_procedure.tex}
\vfill\input{\ROOT/handout/tables/game_procedure.tex}
\end{frame}
\end{document}

View File

@ -32,6 +32,9 @@
\usepackage{tikz,adjustbox}
\usetikzlibrary{babel}
\usepackage{enumerate}
% \usepackage{enumitem} % change numbering
\usepackage{booktabs,longtable,tabularx,ltxtable}
\usepackage{etoolbox}