From ef3ffbcbb5795f3a5848ebc25a4163dd3fd94a1a Mon Sep 17 00:00:00 2001 From: Aada Date: Tue, 18 Jun 2024 17:52:13 +0200 Subject: Add disc-like 5 to repository --- rnv/disc-five.tex | 302 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 302 insertions(+) create mode 100644 rnv/disc-five.tex (limited to 'rnv/disc-five.tex') diff --git a/rnv/disc-five.tex b/rnv/disc-five.tex new file mode 100644 index 0000000..6db3267 --- /dev/null +++ b/rnv/disc-five.tex @@ -0,0 +1,302 @@ +\documentclass[tikz]{standalone} + +\usepackage{tikz} +\usepackage{pgfplots} +\usepgfplotslibrary{polar} +\usetikzlibrary{shapes.geometric} + +\usepackage{fontspec} +\setmainfont{Atkinson Hyperlegible} + +\begin{document} + +\def\circleradius{7.5} + +\def\minute{2.6277} +\pgfmathparse{\minute/2} +\let\halfminute\pgfmathresult + +\pgfplotstableread[col sep=comma]{times.csv}\data +\definecolor{one}{RGB}{243,155,154} +\definecolor{two}{RGB}{176,0,68} +\definecolor{three}{RGB}{213,173,0} +\definecolor{four}{RGB}{227,0,11} +\definecolor{five}{RGB}{0,150,94} +\definecolor{six}{RGB}{149,107,37} +\definecolor{seven}{RGB}{255,204,0} +\definecolor{fifteen}{RGB}{247,171,99} +\definecolor{sixteen}{RGB}{94,107,175} +\definecolor{twentyone}{RGB}{227,0,11} +\definecolor{twentytwo}{RGB}{253,195,0} +\definecolor{twentythree}{RGB}{228,142,0} +\definecolor{twentyfour}{RGB}{140,29,117} +\definecolor{twentysix}{RGB}{243,155,154} + +\def\arcbetween#1#2#3#4{% + \pgfplotstablegetelem{#1}{Time Angle}\of\data + \pgfmathparse{\pgfplotsretval-30.975} + \let\angleone\pgfmathresult + \pgfplotstablegetelem{#2}{Time Angle}\of\data + \pgfmathparse{\pgfplotsretval-30.975} + \let\angletwo\pgfmathresult + \pgfmathparse{\circleradius+0.1*#3} + \let\radius\pgfmathresult + \draw[ultra thick, color=#4] (\angleone:\radius) arc [start angle=\angleone, end angle=\angletwo, x radius=\radius, y radius=\radius]; +} + +\def\stop#1#2#3{% + \pgfplotstablegetelem{#1}{Stop}\of\data + \let\name\pgfplotsretval + \pgfplotstablegetelem{#1}{Time Angle}\of\data + \pgfmathparse{\pgfplotsretval-30.975} + \let\angle\pgfmathresult + \pgfmathparse{#2*0.1} + \let\width\pgfmathresult + \pgfmathparse{\circleradius+(#3*0.1)} + \let\radius\pgfmathresult + \node[anchor=east, rotate=\angle] at (\angle:\circleradius-0.5+0.05) {\footnotesize\name}; + % \draw[thick, fill=white] (\angle:5cm) circle [radius=0.5ex] {}; + \draw[rounded corners=0.05cm, thick, fill=white, rotate=\angle, shift={(-0.05, -0.05)}] (0:\radius) rectangle ++(\width,0.1cm); +} + +\def\legend#1{% + % Circle for the legend + \draw circle [radius=0.15cm]; + \draw[draw, color=black] circle [radius=\circleradius+2]; + \draw[thick] circle [radius=#1]; + \pgfmathparse{#1+0.2} + \let\rmajor\pgfmathresult + \pgfmathparse{#1+0.1} + \let\rminor\pgfmathresult + % Major ticks clockwise + \draw[thick] (90:#1) -- (90:\rmajor); + \foreach \i in {5,10,...,65} { + \pgfmathparse{90-\i * 2.6277} + \let\angle\pgfmathresult + \draw[thick] (\angle:#1) -- (\angle:\rmajor); + \node[anchor=west, rotate=\angle] at (\angle:\rmajor) {\scriptsize \i~min}; + } + % Minor ticks clockwise + \foreach \i in {1,2,...,65} { + \pgfmathparse{90-\i * 2.6277} + \let\angle\pgfmathresult + \draw[thick] (\angle:#1) -- (\angle:\rminor); + } + % Major ticks anti-clockwise + \foreach \i in {5,10,...,65} { + \pgfmathparse{90+\i * 2.6277} + \let\angle\pgfmathresult + \draw[thick] (\angle:#1) -- (\angle:\rmajor); + \node[anchor=east, rotate=\angle-180] at (\angle:\rmajor) {\scriptsize \i~min}; + } + % Minor ticks anti-clockwise + \foreach \i in {1,2,...,65} { + \pgfmathparse{90+\i * 2.6277} + \let\angle\pgfmathresult + \draw[thick] (\angle:#1) -- (\angle:\rminor); + } + % Extra marks + \draw[thick] (-90:#1) -- (-90:\rmajor); + \node [isosceles triangle, anchor=east, fill=red, rotate=-90] (tringle) at (90:#1){}; + \node[anchor=south, rotate=0, color=red] at (tringle.west) {\footnotesize 0~min}; +} + +\def\bendin#1#2#3#4#5{% + % First angle + \pgfplotstablegetelem{#1}{Time Angle}\of\data + \pgfmathparse{\pgfplotsretval-30.975} + \let\angletwo\pgfmathresult + % Second angle + \pgfmathparse{\pgfplotsretval-30.975+#2*\halfminute} + \let\anglethree\pgfmathresult + \pgfmathparse{\circleradius+#3*0.1} + \let\radius\pgfmathresult + \draw[ultra thick, color=#5, rounded corners=#4*.5ex] + (\angletwo:\radius) -- (\anglethree:\radius) -- (\anglethree:\circleradius-0.5) + ; +} + +\def\bendout#1#2#3#4#5{% + % First angle + \pgfplotstablegetelem{#1}{Time Angle}\of\data + \pgfmathparse{\pgfplotsretval-30.975} + \let\angletwo\pgfmathresult + % Second angle + \pgfmathparse{\pgfplotsretval-30.975+#2*\halfminute} + \let\anglethree\pgfmathresult + \pgfmathparse{\circleradius+#3*0.1} + \let\radius\pgfmathresult + % + \draw[ultra thick, color=#5, rounded corners=#4*.5ex] + (\angletwo:\radius) -- (\anglethree:\radius) -- (\anglethree:\circleradius+0.5) + ; +} +\def\crossing#1#2#3#4{% + \pgfplotstablegetelem{#1}{Time Angle}\of\data + \pgfmathparse{\pgfplotsretval-30.975} + \let\angleone\pgfmathresult + \pgfplotstablegetelem{#2}{Time Angle}\of\data + \pgfmathparse{\pgfplotsretval-30.975} + \let\angletwo\pgfmathresult + \pgfmathparse{(\angleone+\angletwo)/2+#3} + \let\angle\pgfmathresult + \draw[ultra thick, color=#4] (\angle:\circleradius-0.5) -- (\angle:\circleradius+0.5); +} + +\def\citybetween#1#2#3{% + \pgfplotstablegetelem{#1}{Time Angle}\of\data + \pgfmathparse{\pgfplotsretval-30.975+\halfminute} + \let\angleone\pgfmathresult + \pgfplotstablegetelem{#2}{Time Angle}\of\data + \pgfmathparse{\pgfplotsretval-30.975-\halfminute} + \let\angletwo\pgfmathresult + \pgfmathparse{2} + \let\radius\pgfmathresult + \draw[very thick, color=#3] (\angleone:\radius) arc [start angle=\angleone, end angle=\angletwo, x radius=\radius, y radius=\radius]; +} + +\begin{tikzpicture} + % Circle for the line + \draw[ultra thick, color=five] circle [radius=\circleradius]; + \crossing{18}{19}{-0.6*\halfminute}{five} + \crossing{18}{19}{0}{two} + \crossing{18}{19}{0.6*\halfminute}{seven} + \crossing{28}{29}{0}{five} + % Other lines + % Mannheim + \bendout{15}{-1}{1}{1}{six} + \bendout{20}{1}{1}{1}{seven} + \arcbetween{20}{24}{1}{seven} % 7 (again) + \arcbetween{20}{25}{-1}{fifteen} % 15 (again) + \bendin{20}{2.8}{-1}{4}{fifteen} + \arcbetween{20}{25}{-2}{one} % 1 + \bendin{20}{2.2}{-2}{3}{one} + \arcbetween{20}{22}{-3}{four} + \bendin{20}{1.6}{-3}{2}{four} + \arcbetween{20}{22}{-4}{three} + \bendin{20}{1}{-4}{1}{three} + % Paradeplatz + \arcbetween{22}{25}{2}{six} % 6 + \arcbetween{24}{26}{-3}{four} % 4 + \bendout{22}{-1.0}{-3}{2}{four} + \bendout{22}{-1.3}{-4}{2}{three} + \bendout{22}{-0.7}{3}{1}{two} + \bendin{22}{1.6}{3}{2}{two} + \bendin{22}{1}{2}{1}{six} + \bendin{24}{-1}{1}{1}{seven} + \bendin{24}{1}{-3}{1}{four} + % Main station + \bendin{25}{-1.4}{-2}{1}{one} + \arcbetween{25}{26}{1}{three} + \bendin{25}{-2}{2}{2}{six} + \bendin{26}{2}{2}{2}{six} + \bendout{26}{-0.5}{2}{1}{six} + \bendout{26}{-0.8}{1}{1}{three} + \bendout{26}{-1.1}{-3}{1}{four} + \arcbetween{27}{30}{-1}{two} + \bendout{27}{0.6}{-1}{1}{two} + \arcbetween{28}{30}{-2}{seven} + \bendout{28}{1}{-2}{1}{seven} + % Universitätsklinikum + \bendin{30}{-1}{-2}{1}{seven} + \bendin{30}{-1.6}{-1}{2}{two} + \bendout{30}{1.6}{1}{2}{fifteen} + \bendout{30}{1}{2}{1}{four} + \arcbetween{30}{36}{1}{fifteen} + \arcbetween{30}{32}{2}{four} + \bendout{32}{-1}{2}{1}{four} + \bendin{36}{-1.4}{1}{2}{fifteen} + \bendin{36}{-0.8}{0}{1}{five} + \bendout{37}{-1}{1}{1}{sixteen} + % Heidelberg + % Hans-Thoma Pl. + \arcbetween{63}{64}{-1}{twentyfour} % 24 + \bendin{64}{-1}{-2}{1}{twentyone} % 21 + \bendin{64}{-1.6}{-1}{2}{twentyfour} % 24 + \arcbetween{63}{69}{1}{twentysix} % 26 + % Bismarckplatz + \arcbetween{70}{73}{1}{twentyone} % 21 + \bendin{69}{-1.7}{1}{1}{twentysix} % 26 towards kirchheim + \bendin{70}{1.7}{1}{1}{twentyone} % 21 towards hans-thoma (north) + \bendin{73}{-0.8}{1}{1}{twentyone} % 21 towards hans-thoma (south) + \arcbetween{69}{71}{2}{twentythree} % 23 + \arcbetween{69}{71}{3}{twentytwo} % 22 + % Stadtbücherei + \bendout{71}{-0.7}{3}{1}{twentytwo} % 22 towards eppelheim + \bendout{71}{-1}{2}{1}{twentythree} % 23 towards leimen + \bendout{72}{0.7}{2}{1}{twentyfour} + \arcbetween{72}{73}{2}{twentyfour} % 24 (again) + \bendin{73}{-1.4}{2}{2}{twentyfour} + % \arcbetween{64}{64}{1}{red} % 21 (again) + % Stops + \foreach \i in {1,...,14} { \stop{\i}{1}{0} } + \stop{15}{2}{0} + \foreach \i in {16,...,19} { \stop{\i}{1}{0} } + \foreach \i in {20,...,21} { \stop{\i}{6}{-4} } + \stop{22}{8}{-4} + \stop{23}{5}{-2} + \stop{24}{6}{-3} + \stop{25}{6}{-3} + % \foreach \i in {24,...,25} { \stop{\i}{4}{-1} } + % \stop{25}{4}{-2} + \stop{26}{6}{-3} + \stop{27}{2}{-1} + \stop{28}{3}{-2} + \stop{29}{3}{-2} + \stop{30}{5}{-2} + \foreach \i in {31,...,32} { \stop{\i}{3}{0} } + \foreach \i in {33,...,35} { \stop{\i}{2}{0} } + \stop{36}{2}{0} + \stop{37}{2}{0} + \foreach \i in {38,...,62} { \stop{\i}{1}{0} } + \stop{63}{3}{-1} + \stop{64}{4}{-2} + \foreach \i in {65,...,68} { \stop{\i}{2}{0} } + \stop{69}{4}{0} + \stop{70}{4}{0} + \stop{71}{4}{0} + \stop{72}{3}{0} + \stop{73}{3}{0} + % \draw[very thick, color=black] (-338.4202:2cm) arc [start angle=-338.4202, delta angle=-42.6014-30, x radius=2cm, y radius=2cm]; + % \citybetween{63}{9}{black}{} + % \citybetween{16}{38}{black}{} + % \citybetween{39}{43}{black}{} + % \citybetween{44}{50}{black}{} + % \citybetween{57}{59}{black}{} + % \citybetween{60}{62}{black}{} + \pgfmathparse{\circleradius-0.5} + \draw[color=black] circle [radius=\pgfmathresult]; + \pgfmathparse{\circleradius+0.5} + \draw[color=black] circle [radius=\pgfmathresult]; + \legend{\circleradius+0.6} +\end{tikzpicture} + +\begin{tikzpicture} + \legend{\circleradius+0.6} +\end{tikzpicture} + +% \begin{tikzpicture} +% \begin{polaraxis}[ +% xtick=data, +% ytick=\empty, +% xticklabels from table={\data}{Stop}, +% xticklabel style={ +% sloped like x axis={ +% allow upside down=true, +% % execute for upside down=\tikzset{right}, +% % reset nontranslations=false, +% }, +% left, +% font=\scriptsize, +% rotate=60, +% }, +% xmin=-360, +% xmax=0, +% rotate=-30, +% ] +% \addplot[draw=none, mark=none] table [x=Time Angle, y=Index] {\data}; +% \end{polaraxis} +% \end{tikzpicture} + +\end{document} +% vim: conceallevel=0 nospell -- cgit v1.2.3