Compare commits

..

10 Commits

Author SHA1 Message Date
Arne Keller
8e3ea76d55 Enable LTO and disable incremental release builds 2019-04-29 15:06:11 +02:00
Arne Keller
20cd30c664 Update example 5 solution 2019-04-29 14:54:30 +02:00
Arne Keller
0b3bbad021 Update example solutions 2019-04-29 13:33:39 +02:00
Arne Keller
fff87ba106 Use units 2019-04-29 13:33:28 +02:00
Arne Keller
ebab3fe944 Cleanup 2019-04-29 12:56:45 +02:00
Arne Keller
0df1c9f32c Update example 4 solution 2019-04-29 12:40:34 +02:00
Arne Keller
f6ea0f50ab Update example 4 solution 2019-04-29 11:58:46 +02:00
Arne Keller
a0fe73fc21 Update docs 2019-04-29 11:14:30 +02:00
Arne Keller
89ad12842d Final code commit 2019-04-29 11:14:23 +02:00
Arne Keller
0ab21f8d42 Add example solution data 2019-04-29 11:14:04 +02:00
12 changed files with 1006 additions and 854 deletions

2
.gitignore vendored
View File

@ -4,3 +4,5 @@
*.pdf
*.toc
*.aux
*.pdf_tex
rand_sel_*.txt

View File

@ -65,20 +65,13 @@
\tableofcontents
\section{Lösungsidee}
Ähnlich wie man für Lisa in der ersten Aufgabe Kurven ausschließen kann, kann man für diese Aufgabe feststellen, dass zwei Dreiecke, die nebeneinander platziert sind, sich immer berühren. Berühren können sich diese entweder Kante an Kante oder nur an einem Punkt. Wenn zwischen zwei Dreiecken noch Platz ist, könnten diese näher zusammenrücken. Daher kann man annehmen, dass in jeder optimalen Lösung kein freier Platz (der belegt werden könnte) zwischen zwei benachbarten Dreiecken ist.
Mit dieser Einschränkung erscheint eine Brute-Force-Suche mit Heuristiken möglich, wenn auch nicht besonders elegant.
\subsection{Laufzeitanalyse}
Jedes Dreieck kann auf eine der drei Seiten gelegt werden. Zudem kann es horizontal gespiegelt werden. Somit haben wir für das \enquote{erste} Dreieck, das platziert wird, $6n$ Möglichkeiten. Andere Dreiecke können auf linker oder rechter Seite platziert werden: $4*6(n-1)$ Möglichkeiten. Wie bei vielen Brute-Force-Suchen ist die Laufzeit daher ca. $O(n!)$. Heuristiken können helfen, die Laufzeit in der Praxis zu verkürzen.
Die Anzahl der möglichen Anordnungen ist sehr groß. Schon die Reihenfolge der Dreiecke hat viele Möglichkeiten. Daher ist es schneller, zufällig gefundene Lösungen zu optimieren. Mit einigen Heuristiken können akzeptable, aber nicht optimale, Anordnungen gefunden werden.
\section{Bedienung des Programms}
Das Programm liest die Problemstellung von der Standardeingabe ein. Die grafische Ausgabe wird in die Standardausgabe geschrieben. Kommandozeilenparameter werden nicht verarbeitet.
Das Programm liest die Problemstellung von der Standardeingabe ein. Informationen über gefundene Lösungen und Visualisierungen dieser werden im aktuellen Verzeichnis gespeichert. Der Gesamtabstand gefundener Anordnungen wird auch in der Standardausgabe angezeigt.
\section{Umsetzung}
Als Startzustand werden alle Dreiecke in jeweils sechs Konfigurationen gespeichert. Auf solche unvollständigen Aufteilungen baut die Hauptschleife auf. Es wird dabei immer zuerst die Konfiguration mit der kleinsten Breite zuerst bearbeitet, um so zuerst möglicherweise bessere Konfigurationen zu verarbeiten. Zu einer unvollständigen Aufteilung versucht das Programm dann, eins der verbleibenden Dreiecke hinzuzufügen (???). Dieses neue Dreieck kann natürlich zwischen zwei Dreiecke, links neben alle Dreiecke oder rechts neben alle Dreiecke platziert werden. Als Drehwinkel werden genau solche probiert, bei denen das Dreieck entweder an der Straße mit einer Seite liegt oder ein anderes Dreieck berührt.
\subsection{Optimierungen}
Wie bereits erwähnt, werden Aufteilungen mit kleinerer Breite zuerst abgearbeitet.
Zuerst wird eine zufällige Anordnung der Grundstücke generiert. Dafür werden beliebige Grundstücke getauscht, gedreht und gespiegelt. Danach werden zufällige Optimierungen ausprobiert: entweder werden alle Winkel und Spiegelungen oder nur ein Winkel verändert. Mit dieser Kombination sind sowohl grundlegende Änderungen als auch Feinabstimmungen möglich. Bis durch diese keine Verbesserung mehr gefunden wird. Ist die so gefundene Anordnung besser als bereits gefundene, wird sie gespeichert. Dieser Prozess wird wiederholt, bis der Anwender das Programm beendet.
\section{Beispiele}
\lstinputlisting[caption=Lösung für dreiecke1.txt,frame=single,breaklines=true]{worldr1.txt}
@ -86,14 +79,35 @@ Wie bereits erwähnt, werden Aufteilungen mit kleinerer Breite zuerst abgearbeit
\def\svgwidth{\columnwidth}
\input{worldr1.pdf_tex}
\caption{Visualisierung der Lösung für dreiecke1.txt}
\label{fig:Bild1}
\label{fig:d1}
\end{figure}
\lstinputlisting[caption=Lösung für dreiecke2.txt,frame=single,breaklines=true]{worldr2.txt}
\begin{figure}[H]
\def\svgwidth{\columnwidth}
\input{worldr2.pdf_tex}
\caption{Visualisierung der Lösung für dreiecke2.txt}
\label{fig:Bild1}
\label{fig:d2}
\end{figure}
\lstinputlisting[caption=Lösung für dreiecke3.txt,frame=single,breaklines=true]{worldr3.txt}
\begin{figure}[H]
\def\svgwidth{\columnwidth}
\input{worldr3.pdf_tex}
\caption{Visualisierung der Lösung für dreiecke3.txt}
\label{fig:d3}
\end{figure}
\lstinputlisting[caption=Lösung für dreiecke4.txt,frame=single,breaklines=true]{worldr4.txt}
\begin{figure}[H]
\def\svgwidth{\columnwidth}
\input{worldr4.pdf_tex}
\caption{Visualisierung der Lösung für dreiecke4.txt}
\label{fig:d4}
\end{figure}
\lstinputlisting[caption=Lösung für dreiecke5.txt,frame=single,breaklines=true]{worldr5.txt}
\begin{figure}[H]
\def\svgwidth{\columnwidth}
\input{worldr5.pdf_tex}
\caption{Visualisierung der Lösung für dreiecke5.txt}
\label{fig:d5}
\end{figure}
\section{Quellcode (Hauptalgorithmus)}

3
run_svg2text.sh Normal file → Executable file
View File

@ -1,2 +1,5 @@
inkscape -D -z --file=worldr1.svg --export-pdf=worldr1.pdf --export-latex
inkscape -D -z --file=worldr2.svg --export-pdf=worldr2.pdf --export-latex
inkscape -D -z --file=worldr3.svg --export-pdf=worldr3.pdf --export-latex
inkscape -D -z --file=worldr4.svg --export-pdf=worldr4.pdf --export-latex
inkscape -D -z --file=worldr5.svg --export-pdf=worldr5.pdf --export-latex

View File

@ -1,6 +1,6 @@
use svg::node::element::path::Data;
use svg::node::element::Path;
use svg::node::element::Circle;
use svg::node::element::Path;
use svg::Document;
use svg::Node;
@ -13,29 +13,42 @@ fn idx_to_char(idx: usize) -> char {
0 => 'A',
1 => 'B',
2 => 'C',
_ => unreachable!()
_ => unreachable!(),
}
}
pub(crate) fn save_info(filename: &str, world: &World, tris: &[Triangle], original_tris: &[Triangle]) {
let mut text = format!("Gesamtabstand: {:.0}\n", world.width);
pub(crate) fn save_info(
filename: &str,
world: &World,
tris: &[Triangle],
original_tris: &[Triangle],
) {
let mut text = format!("Gesamtabstand: {:.0}m\n", world.width);
for (idx, (_, tri)) in world.tris.iter().enumerate() {
let unrotated_tri = tris[idx];
let original_idx = original_tris.iter().position(|x| x.0 == unrotated_tri.0 && x.1 == unrotated_tri.1 && x.2 == unrotated_tri.2).unwrap();
let original_idx = original_tris
.iter()
.position(|x| {
x.0 == unrotated_tri.0 && x.1 == unrotated_tri.1 && x.2 == unrotated_tri.2
})
.unwrap();
text += &format!("D{}:", original_idx);
let mut coordinates = vec![tri.0, tri.1, tri.2];
coordinates.sort_by_key(|x| (x.x * 100.0) as u32);
for (idx, c) in coordinates.into_iter().enumerate() {
text += &format!(" D{}{}[{:.0} {:.0}]", original_idx, idx_to_char(idx), c.x, c.y);
text += &format!(
" D{}{}[{:.0} {:.0}]",
original_idx,
idx_to_char(idx),
c.x,
c.y
);
}
text += "\n";
}
fs::write(filename, text).unwrap();
}
pub(crate) fn save_tri(filename: &str, tri: Triangle) {
fs::write(filename, generate_svg(&[tri])).unwrap();
}
pub(crate) fn save_world(filename: &str, world: &World) {
fs::write(
filename,

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
Gesamtabstand: 0
Gesamtabstand: 0m
D3: D3A[-0 0] D3B[-531 35] D3C[-485 178]
D1: D1A[-0 0] D1B[-498 284] D1C[-396 394]
D0: D0A[-0 0] D0B[-230 417] D0C[-84 451]

147
worldr3.svg Normal file
View File

@ -0,0 +1,147 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
height="291.75681"
width="543.85474"
id="svg50"
version="1.1"
viewBox="-20 -20 543.85474 291.75681">
<metadata
id="metadata56">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs54" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path2"
d="M 178.38174,271.07701 -5.1303221,188.53413 -12.338752,264.85607 Z" />
<circle
style="fill:#ff0000"
id="circle4"
r="0.30000001"
cy="271.077"
cx="178.38174" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path6"
d="m 23.794668,133.40773 -43.46295,48.33188 198.050082,89.3374 z" />
<circle
style="fill:#ff0000"
id="circle8"
r="0.30000001"
cy="133.40773"
cx="23.794666" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path10"
d="M -16.288222,84.302858 178.38182,271.07701 58.432148,72.225128 Z" />
<circle
style="fill:#ff0000"
id="circle12"
r="0.30000001"
cy="84.302856"
cx="-16.288219" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path14"
d="M 80.541828,108.20488 135.40401,75.248238 178.38183,271.07701 Z" />
<circle
style="fill:#ff0000"
id="circle16"
r="0.30000001"
cy="108.20488"
cx="80.541832" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path18"
d="M 178.38191,271.07701 147.12184,114.15726 198.57577,91.321038 Z" />
<circle
style="fill:#ff0000"
id="circle20"
r="0.30000001"
cy="271.077"
cx="178.38191" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path22"
d="m 178.38191,271.07701 52.37911,-36.00593 -41.08944,-55.71944 z" />
<circle
style="fill:#ff0000"
id="circle24"
r="0.30000001"
cy="271.077"
cx="178.38191" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path26"
d="m 257.30504,271.07701 -9.38126,-122.13514 -52.09187,38.77415 z" />
<circle
style="fill:#ff0000"
id="circle28"
r="0.30000001"
cy="271.077"
cx="257.30505" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path30"
d="M 221.28504,-19.699992 267.2169,271.07701 290.67263,71.964398 Z" />
<circle
style="fill:#ff0000"
id="circle32"
r="0.30000001"
cy="-19.700001"
cx="221.28503" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path34"
d="M 290.7027,71.641908 267.2369,271.07701 349.32342,99.724138 Z" />
<circle
style="fill:#ff0000"
id="circle36"
r="0.30000001"
cy="71.641907"
cx="290.7027" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path38"
d="M 378.66574,187.72899 273.4369,271.07701 320.12373,160.65809 Z" />
<circle
style="fill:#ff0000"
id="circle40"
r="0.30000001"
cy="187.72899"
cx="378.66574" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path42"
d="M 422.43528,153.0497 273.4569,271.07701 523.28391,200.15121 Z" />
<circle
style="fill:#ff0000"
id="circle44"
r="0.30000001"
cy="153.0497"
cx="422.43527" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path46"
d="m 273.4569,271.07701 155.11037,-1.3297 87.06939,-67.40861 z" />
<circle
style="fill:#ff0000"
id="circle48"
r="0.30000001"
cy="271.077"
cx="273.45691" />
</svg>

After

Width:  |  Height:  |  Size: 4.0 KiB

13
worldr3.txt Normal file
View File

@ -0,0 +1,13 @@
Gesamtabstand: 95m
D0: D0A[-286 6] D0B[-279 83] D0C[-95 0]
D1: D1A[-293 89] D1B[-250 138] D1C[-95 0]
D2: D2A[-290 187] D2B[-215 199] D2C[-95 0]
D3: D3A[-193 163] D3B[-138 196] D3C[-95 0]
D4: D4A[-126 157] D4B[-95 0] D4C[-75 180]
D5: D5A[-95 0] D5B[-84 92] D5C[-43 36]
D6: D6A[-78 83] D6B[-26 122] D6C[-16 0]
D7: D7A[17 199] D7B[-52 291] D7C[-6 0]
D8: D8A[17 199] D8B[76 171] D8C[-6 0]
D9: D9A[47 110] D9B[105 83] D9C[-0 0]
D10: D10A[-0 0] D10B[149 118] D10C[250 71]
D11: D11A[0 0] D11B[155 1] D11C[242 69]

257
worldr4.svg Normal file
View File

@ -0,0 +1,257 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
height="201.05983"
width="665.84967"
id="svg94"
version="1.1"
viewBox="-20 -20 665.84967 201.05983">
<metadata
id="metadata100">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs98" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path2"
d="m -11.438057,131.93477 184.803247,48.45364 -192.200407,-0.0152 z" />
<circle
style="fill:#ff0000"
id="circle4"
r="0.30000001"
cy="131.93477"
cx="-11.438066" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path6"
d="M 173.36522,180.38841 1.5968428,88.081109 -19.704817,127.71996 Z" />
<circle
style="fill:#ff0000"
id="circle8"
r="0.30000001"
cy="180.38841"
cx="173.36522" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path10"
d="M 12.355183,93.545009 52.630443,63.563259 173.36522,180.38841 Z" />
<circle
style="fill:#ff0000"
id="circle12"
r="0.30000001"
cy="93.545013"
cx="12.355178" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path14"
d="m 126.00441,85.615299 -2.8592,46.008971 50.22013,48.76414 z" />
<circle
style="fill:#ff0000"
id="circle16"
r="0.30000001"
cy="85.615303"
cx="126.00441" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path18"
d="m 132.27531,98.160359 61.65997,20.568051 -20.56802,61.66 z" />
<circle
style="fill:#ff0000"
id="circle20"
r="0.30000001"
cy="98.160362"
cx="132.27531" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path22"
d="m 204.29944,180.38841 -15.2322,-47.09544 29.58728,-57.875661 z" />
<circle
style="fill:#ff0000"
id="circle24"
r="0.30000001"
cy="180.38841"
cx="204.29944" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path26"
d="m 219.71617,67.746239 -13.56674,99.075441 99.07545,13.56673 z" />
<circle
style="fill:#ff0000"
id="circle28"
r="0.30000001"
cy="67.746239"
cx="219.71617" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path30"
d="m 224.51514,33.042109 -4.76026,34.67478 85.47003,112.671521 z" />
<circle
style="fill:#ff0000"
id="circle32"
r="0.30000001"
cy="33.04211"
cx="224.51514" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path34"
d="M 305.22494,180.38841 237.45008,-5.9515306 226.0149,35.644589 Z" />
<circle
style="fill:#ff0000"
id="circle36"
r="0.30000001"
cy="180.38841"
cx="305.22495" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path38"
d="M 308.37391,9.4173994 243.38493,8.2204294 305.22496,180.38841 Z" />
<circle
style="fill:#ff0000"
id="circle40"
r="0.30000001"
cy="9.4174013"
cx="308.3739" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path42"
d="m 309.04911,-19.700001 40.20879,190.809461 -44.03294,9.27895 z" />
<circle
style="fill:#ff0000"
id="circle44"
r="0.30000001"
cy="-19.700001"
cx="309.0491" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path46"
d="M 350.47389,180.38841 332.47496,43.782999 371.8173,13.746689 Z" />
<circle
style="fill:#ff0000"
id="circle48"
r="0.30000001"
cy="180.38841"
cx="350.47388" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path50"
d="m 403.85472,141.57491 -53.38083,38.8135 12.215,-95.429521 z" />
<circle
style="fill:#ff0000"
id="circle52"
r="0.30000001"
cy="141.57492"
cx="403.85471" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path54"
d="m 402.53389,180.38841 4.51299,-133.340291 19.96765,41.54869 z" />
<circle
style="fill:#ff0000"
id="circle56"
r="0.30000001"
cy="180.38841"
cx="402.53387" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path58"
d="m 437.21479,50.302929 0.23311,94.999711 -34.91401,35.08577 z" />
<circle
style="fill:#ff0000"
id="circle60"
r="0.30000001"
cy="50.302929"
cx="437.21478" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path62"
d="m 472.05147,-15.695381 -34.92758,30.08428 0.40015,165.999511 z" />
<circle
style="fill:#ff0000"
id="circle64"
r="0.30000001"
cy="-15.695376"
cx="472.05148" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path66"
d="m 455.02703,80.936199 -5.85299,99.452211 33.8803,-88.753171 z" />
<circle
style="fill:#ff0000"
id="circle68"
r="0.30000001"
cy="80.936203"
cx="455.02704" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path70"
d="M 530.22224,68.902319 510.09953,20.579689 449.25404,180.38841 Z" />
<circle
style="fill:#ff0000"
id="circle72"
r="0.30000001"
cy="68.902321"
cx="530.22223" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path74"
d="m 528.37031,71.458999 -5.22517,49.220911 -73.8911,59.7085 z" />
<circle
style="fill:#ff0000"
id="circle76"
r="0.30000001"
cy="71.459"
cx="528.3703" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path78"
d="M 449.25404,180.38841 623.7453,84.504129 573.74874,79.884339 Z" />
<circle
style="fill:#ff0000"
id="circle80"
r="0.30000001"
cy="180.38841"
cx="449.25403" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path82"
d="M 607.12941,129.09159 449.25404,180.38841 626.39059,91.289389 Z" />
<circle
style="fill:#ff0000"
id="circle84"
r="0.30000001"
cy="129.0916"
cx="607.12939" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path86"
d="m 449.25404,180.38841 195.99998,-34.00001 -59,-6 z" />
<circle
style="fill:#ff0000"
id="circle88"
r="0.30000001"
cy="180.38841"
cx="449.25403" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path90"
d="m 645.54965,150.25486 -196.29561,30.13355 142.65541,-4.29309 z" />
<circle
style="fill:#ff0000"
id="circle92"
r="0.30000001"
cy="150.25485"
cx="645.54962" />
</svg>

After

Width:  |  Height:  |  Size: 7.0 KiB

24
worldr4.txt Normal file
View File

@ -0,0 +1,24 @@
Gesamtabstand: 276m
D0: D0A[-468 0] D0B[-461 48] D0C[-276 0]
D1: D1A[-469 53] D1B[-448 92] D1C[-276 0]
D2: D2A[-437 87] D2B[-397 117] D2C[-276 0]
D3: D3A[-326 49] D3B[-323 95] D3C[-276 0]
D4: D4A[-317 82] D4B[-276 0] D4C[-255 62]
D5: D5A[-260 47] D5B[-245 0] D5C[-231 105]
D6: D6A[-243 14] D6B[-230 113] D6C[-144 0]
D7: D7A[-229 113] D7B[-225 147] D7C[-144 0]
D8: D8A[-223 145] D8B[-212 186] D8C[-144 0]
D9: D9A[-206 172] D9B[-144 0] D9C[-141 171]
D10: D10A[-144 0] D10B[-140 200] D10C[-100 9]
D11: D11A[-117 137] D11B[-99 0] D11C[-77 167]
D12: D12A[-99 0] D12B[-87 95] D12C[-45 39]
D13: D13A[-47 0] D13B[-42 133] D13C[-22 92]
D14: D14A[-47 0] D14B[-12 130] D14C[-12 35]
D15: D15A[23 196] D15B[-12 166] D15C[-12 0]
D16: D16A[6 99] D16B[34 89] D16C[-0 0]
D17: D17A[-0 0] D17B[61 160] D17C[81 111]
D18: D18A[-0 0] D18B[74 60] D18C[79 109]
D19: D19A[-0 0] D19B[124 101] D19C[174 96]
D20: D20A[-0 0] D20B[158 51] D20C[177 89]
D21: D21A[-0 0] D21B[137 40] D21C[196 34]
D22: D22A[0 0] D22B[143 4] D22C[196 30]

397
worldr5.svg Normal file
View File

@ -0,0 +1,397 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
height="187.62105"
width="1019.2289"
id="svg150"
version="1.1"
viewBox="-20 -20 1019.2289 187.62105">
<metadata
id="metadata156">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs154" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path2"
d="m 9.8247018,161.65535 25.3456002,-11.42812 56.6915,16.61522 z" />
<circle
style="fill:#ff0000"
id="circle4"
r="0.30000001"
cy="161.65535"
cx="9.8247223" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path6"
d="M 91.862442,166.84245 -19.678198,134.10608 8.7887018,92.891545 Z" />
<circle
style="fill:#ff0000"
id="circle8"
r="0.30000001"
cy="166.84244"
cx="91.862442" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path10"
d="m 10.422602,94.34452 81.4434,72.49793 -28.5823,-50.52774 z" />
<circle
style="fill:#ff0000"
id="circle12"
r="0.30000001"
cy="94.344521"
cx="10.422623" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path14"
d="m 92.446552,66.771915 3.44812,100.070535 -38.66857,-59.91441 z" />
<circle
style="fill:#ff0000"
id="circle16"
r="0.30000001"
cy="66.771912"
cx="92.446548" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path18"
d="M 92.014662,54.304485 131.65626,99.74176 95.914102,166.84245 Z" />
<circle
style="fill:#ff0000"
id="circle20"
r="0.30000001"
cy="54.304489"
cx="92.014664" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path22"
d="m 137.47865,78.969475 22.19495,42.395605 -46.8595,45.47737 z" />
<circle
style="fill:#ff0000"
id="circle24"
r="0.30000001"
cy="78.969475"
cx="137.47865" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path26"
d="m 174.61085,106.85771 -61.79675,59.98474 52.3878,-12.06322 z" />
<circle
style="fill:#ff0000"
id="circle28"
r="0.30000001"
cy="106.85771"
cx="174.61086" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path30"
d="m 175.5686,106.22743 -12.95445,60.61502 64.44895,-12.93566 z" />
<circle
style="fill:#ff0000"
id="circle32"
r="0.30000001"
cy="106.22742"
cx="175.56862" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path34"
d="M 184.48414,114.48892 211.36525,91.874625 241.0271,166.84245 Z" />
<circle
style="fill:#ff0000"
id="circle36"
r="0.30000001"
cy="114.48891"
cx="184.48415" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path38"
d="m 248.60725,55.736095 -40.65021,27.5239 33.07532,83.582455 z" />
<circle
style="fill:#ff0000"
id="circle40"
r="0.30000001"
cy="55.736092"
cx="248.60725" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path42"
d="m 243.9716,123.58439 20.2253,-5.9947 -21.54454,49.25276 z" />
<circle
style="fill:#ff0000"
id="circle44"
r="0.30000001"
cy="123.58438"
cx="243.97157" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path46"
d="m 247.66237,155.37365 48.96393,11.4688 -22.3204,-72.37956 z" />
<circle
style="fill:#ff0000"
id="circle48"
r="0.30000001"
cy="155.37364"
cx="247.66237" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path50"
d="M 319.1494,80.183795 296.6266,166.84245 272.8763,89.816965 Z" />
<circle
style="fill:#ff0000"
id="circle52"
r="0.30000001"
cy="80.183792"
cx="319.14944" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path54"
d="m 320.1024,76.479695 -21.3858,82.290035 61.1296,8.07272 z" />
<circle
style="fill:#ff0000"
id="circle56"
r="0.30000001"
cy="76.479698"
cx="320.10239" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path58"
d="M 343.26625,129.14339 372.6564,166.84245 354.94606,98.021339 Z" />
<circle
style="fill:#ff0000"
id="circle60"
r="0.30000001"
cy="129.14339"
cx="343.26627" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path62"
d="m 410.5374,98.532435 -37.878,68.310015 -21.413,-83.195465 z" />
<circle
style="fill:#ff0000"
id="circle64"
r="0.30000001"
cy="98.532433"
cx="410.53745" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path66"
d="M 372.6594,166.84245 435.9191,98.2042 423.6763,74.813755 Z" />
<circle
style="fill:#ff0000"
id="circle68"
r="0.30000001"
cy="166.84244"
cx="372.65939" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path70"
d="m 385.1994,153.22988 49.3405,-53.530535 22.1766,67.143105 z" />
<circle
style="fill:#ff0000"
id="circle72"
r="0.30000001"
cy="153.22989"
cx="385.19943" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path74"
d="m 434.9665,95.060545 44.30396,2.67599 -22.54712,69.105915 z" />
<circle
style="fill:#ff0000"
id="circle76"
r="0.30000001"
cy="95.060547"
cx="434.96652" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path78"
d="m 507.55433,152.77359 -41.26823,14.06886 -0.69276,-27.19412 z" />
<circle
style="fill:#ff0000"
id="circle80"
r="0.30000001"
cy="152.77359"
cx="507.55435" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path82"
d="m 534.45747,69.53585 -0.6535,97.3066 -62.21784,-45.58438 z" />
<circle
style="fill:#ff0000"
id="circle84"
r="0.30000001"
cy="69.535851"
cx="534.45746" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path86"
d="M 534.297,92.379325 533.80397,166.84245 576.60408,63.342925 Z" />
<circle
style="fill:#ff0000"
id="circle88"
r="0.30000001"
cy="92.379326"
cx="534.297" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path90"
d="m 575.82027,137.93515 -42.0163,28.9073 40.32971,-97.362805 z" />
<circle
style="fill:#ff0000"
id="circle92"
r="0.30000001"
cy="137.93515"
cx="575.82025" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path94"
d="m 638.3017,68.823345 -61.93267,-4.93429 -0.77508,102.953395 z" />
<circle
style="fill:#ff0000"
id="circle96"
r="0.30000001"
cy="68.823349"
cx="638.3017" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path98"
d="m 575.59395,166.84245 25.83252,-17.16628 6.09326,-32.54032 z" />
<circle
style="fill:#ff0000"
id="circle100"
r="0.30000001"
cy="166.84244"
cx="575.59393" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path102"
d="M 611.44404,110.79727 669.6965,100.966 597.024,166.84245 Z" />
<circle
style="fill:#ff0000"
id="circle104"
r="0.30000001"
cy="110.79727"
cx="611.44403" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path106"
d="m 679.73677,91.860195 -12.75391,74.982255 -54.9989,-13.56924 z" />
<circle
style="fill:#ff0000"
id="circle108"
r="0.30000001"
cy="91.860199"
cx="679.73676" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path110"
d="M 666.98286,166.84245 699.56752,102.78591 684.3644,74.117691 Z" />
<circle
style="fill:#ff0000"
id="circle112"
r="0.30000001"
cy="166.84244"
cx="666.98285" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path114"
d="m 715.2162,71.997595 -48.23334,94.844855 71.69062,-14.08747 z" />
<circle
style="fill:#ff0000"
id="circle116"
r="0.30000001"
cy="71.997597"
cx="715.21619" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path118"
d="m 731.98286,75.944235 34.90041,31.288345 -26.99373,59.60987 z" />
<circle
style="fill:#ff0000"
id="circle120"
r="0.30000001"
cy="75.944237"
cx="731.98285" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path122"
d="m 808.30003,166.82688 -68.41049,0.0156 33.8374,-74.733045 z" />
<circle
style="fill:#ff0000"
id="circle124"
r="0.30000001"
cy="166.82687"
cx="808.30005" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path126"
d="M 808.2936,166.84245 837.8922,105.49162 785.90951,64.178165 Z" />
<circle
style="fill:#ff0000"
id="circle128"
r="0.30000001"
cy="166.84244"
cx="808.29358" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path130"
d="m 808.2936,166.84245 70.88018,-0.0164 -37.09268,-69.347905 z" />
<circle
style="fill:#ff0000"
id="circle132"
r="0.30000001"
cy="166.84244"
cx="808.29358" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path134"
d="m 845.9736,99.582725 61.22474,2.920625 -28.02641,64.3391 z" />
<circle
style="fill:#ff0000"
id="circle136"
r="0.30000001"
cy="99.582726"
cx="845.97363" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path138"
d="m 879.17193,166.84245 81.56475,-186.762405 -10.13939,86.22177 z" />
<circle
style="fill:#ff0000"
id="circle140"
r="0.30000001"
cy="166.84244"
cx="879.17194" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path142"
d="m 916.2393,114.72709 33.13266,17.86691 -70.20003,34.24845 z" />
<circle
style="fill:#ff0000"
id="circle144"
r="0.30000001"
cy="114.72709"
cx="916.23932" />
<path
style="fill:none;stroke:#000000;stroke-width:0.40000001"
id="path146"
d="m 953.06886,154.22318 46.10724,12.61433 -120.00417,0.005 z" />
<circle
style="fill:#ff0000"
id="circle148"
r="0.30000001"
cy="154.22318"
cx="953.06885" />
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

38
worldr5.txt Normal file
View File

@ -0,0 +1,38 @@
Gesamtabstand: 787m
D0: D0A[-989 5] D0B[-964 17] D0C[-907 0]
D1: D1A[-1019 33] D1B[-990 74] D1C[-907 0]
D2: D2A[-989 72] D2B[-936 51] D2C[-907 0]
D3: D3A[-942 60] D3B[-907 100] D3C[-903 0]
D4: D4A[-907 113] D4B[-903 0] D4C[-868 67]
D5: D5A[-886 0] D5B[-862 88] D5C[-840 45]
D6: D6A[-886 0] D6B[-834 12] D6C[-825 60]
D7: D7A[-837 0] D7B[-824 61] D7C[-772 13]
D8: D8A[-815 52] D8B[-788 75] D8C[-758 0]
D9: D9A[-791 84] D9B[-758 0] D9C[-751 111]
D10: D10A[-757 0] D10B[-755 43] D10C[-735 49]
D11: D11A[-752 11] D11B[-725 72] D11C[-703 0]
D12: D12A[-726 77] D12B[-703 0] D12C[-680 87]
D13: D13A[-700 8] D13B[-679 90] D13C[-639 0]
D14: D14A[-656 38] D14B[-644 69] D14C[-627 0]
D15: D15A[-648 83] D15B[-627 0] D15C[-589 68]
D16: D16A[-627 0] D16B[-575 92] D16C[-563 69]
D17: D17A[-614 14] D17B[-565 67] D17C[-542 0]
D18: D18A[-564 72] D18B[-542 0] D18C[-520 69]
D19: D19A[-534 27] D19B[-533 0] D19C[-492 14]
D20: D20A[-528 46] D20B[-465 0] D20C[-465 97]
D21: D21A[-465 0] D21B[-465 74] D21C[-423 103]
D22: D22A[-465 0] D22B[-425 97] D22C[-423 29]
D23: D23A[-424 0] D23B[-423 103] D23C[-361 98]
D24: D24A[-424 0] D24B[-398 17] D24C[-392 50]
D25: D25A[-402 0] D25B[-388 56] D25C[-329 66]
D26: D26A[-387 14] D26B[-332 0] D26C[-319 75]
D27: D27A[-332 0] D27B[-315 93] D27C[-300 64]
D28: D28A[-332 0] D28B[-284 95] D28C[-261 14]
D29: D29A[-267 91] D29B[-259 0] D29C[-232 60]
D30: D30A[-259 0] D30B[-225 75] D30C[-191 0]
D31: D31A[-213 103] D31B[-191 0] D31C[-161 61]
D32: D32A[-191 0] D32B[-157 69] D32C[-120 0]
D33: D33A[-153 67] D33B[-120 0] D33C[-92 64]
D34: D34A[-120 0] D34B[-49 101] D34C[-38 187]
D35: D35A[-120 0] D35B[-83 52] D35C[-50 34]
D36: D36A[0 0] D36B[-120 0] D36C[-46 13]