Hallo Welt für Fortgeschrittene

Ähnliche Dokumente
Hallo Welt für Fortgeschrittene

Geometrie II. Deniz Neufeld Deniz Neufeld Geometrie II / 39

Geometrie II Hallo Welt! für Fortgeschrittene

Geometrie 2. Julian Fischer Julian Fischer Geometrie / 30

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Voronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Voronoi Diagrams. Christian Wellenbrock. December 1, 2009

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Geometrie. Hallo Welt! für Fortgeschrittene Simon Kuhnle. 11. Juli

Übungsblatt 7 - Voronoi Diagramme

Geometrische Algorithmen

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Polygontriangulierung

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Polygontriangulierung

Algorithmische Geometrie: Voronoi Diagramme (Teil 2)

Das Voronoi Diagramm. 1. Definition. 2. Eigenschaften. 3. Größe und Speicherung. 4. Konstruktion. 5. Verwendung

Kapitel 6: Algorithmen der Computer-Geometrie

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr.

Algorithmische Techniken für Geometrische Probleme

Klausur. 18. Juli 2008, 10:15-12:15 Uhr. Name:... Matrikelnummer:... Anzahl beschriebener Blätter (ohne Aufgabenblatt):... D(p) : Y = p x X + p y

Polygontriangulierung

SS 2005 FAU Erlangen Eine Wegeplanungs-Strategie. Jeremy Constantin, Michael Horn, Björn Gmeiner

Algorithmische Geometrie, SoSe 2005 Skriptmitschrift vom 29. April 2005

Geometrische Algorithmen Voronoi-Diagramme. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Voronoi-Diagramme

Hallo Welt! für Fortgeschrittene. Geometrie I. Philipp Erhardt. 19. Juli Philipp Erhardt Geometrie I 19. Juli / 27

Bereichsabfragen. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Algorithmen II Vorlesung am

Geradenarrangements und Dualität von Punkten und Geraden

Geradenarrangements und Dualität von Punkten und Geraden

Geradenarrangements und Dualität von Punkten und Geraden

Algorithmische Geometrie: Abfragen Orthogonaler Bereiche

Kapitel 9 Algorithm. Geometrie. Kürzeste Abstände Konvexe Hülle

12. Flächenrekonstruktion aus 3D-Punktwolken und generalisierte Voronoi-Diagramme

Geometrische Algorithmen Segmentschnitt

Geometrische Algorithmen Segmentschnitt

Voronoi-Diagramme und Delaunay-Triangulierungen

Algorithmen und Datenstrukturen

Das Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt

Geometrie I. Polygone. Dominik Huber Hallo Welt! für Fortgeschrittene. Informatik 2 Programmiersysteme Martensstraße Erlangen

Geometrische Algorithmen

Geometrische Algorithmen Segmentschnitt. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Segmentschnitt

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Geometrie 1. Roman Sommer. Informatik 2 Programmiersysteme Martensstraße Erlangen

Geometrie I. Sebastian Redinger Informatik 2 Programmiersysteme Martensstraße Erlangen

Informatik II, SS 2014

Algorithmische Geometrie: Delaunay Triangulierung (Teil 2)

Algorithmische Geometrie: Delaunay Triangulierung (Teil 1)

Vorlesung Algorithmische Geometrie Konvexe Hülle im R 3

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Hallo Welt für Fortgeschrittene

Übersicht über Informatik und Softwaresystemtechnik WS 99/00, Prof. Dr. Andreas Schwill

Liniensegmentschnitt. Doppelt verkettete Kantenliste. Überlagerung von 2 ebenen Graphen. Boolsche Operatoren für einfache Polygone (LEDA)

Geometrische Datenstrukturen

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Punktlokalisierung. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Entwurf und Analyse von Datenstrukturen

Algorithmische Geometrie: Schnittpunkte von Strecken

Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone

KD-Bäume. ein Vortrag von Jan Schaefer

Anwendungsbeispiel MinHeap

Uberblick 1. Kurzeste Wege 2. Sichtbarkeitsgraphen 3. Berechnung des Sichtbarkeitsgraphen 4. Kurzeste Wege fur polygonale Roboter 1

Algorithmische Geometrie 3. Schnitte von Liniensegmenten

5.5 Prioritätswarteschlangen

Algorithmische Geometrie: Rest Lokalisierung von Punkten; Voronoi Diagramme (1/2)

18. Natürliche Suchbäume

Vorlesung Geometrische Algorithmen Generierung von Nicht-uniformen Netzen Sven Schuierer

Geometrische Algorithmen Einige einfache Definitionen: Ist ein Punkt in einem Polygon? Punkt-in-Polygon-Problem. Das Punkt-in-Polygon-Problem

Anwendungen der WSPD & Sichtbarkeitsgraphen

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

4. Tries und kd-bäume

Vorlesung Datenstrukturen

Jurij-Andrei Reichenecker 21. Juni Tessellationen

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510

Algorithmische Geometrie

Algorithmen und Datenstrukturen

Grundlagen zur Delaunay-Triangulierung und zur konvexen Hülle. zum Begriff des Voronoi-Diagramms (vgl. auch Vorlesung "Algorithmische Geometrie"):

Range-Search. Operationen: Welche Datenstrukturen sind geeignet? Arrays? Listen? AVL-Bäume? Splay-Bäume?

Vorlesung Datenstrukturen

Lineare Programmierung

Algorithmische Geometrie

Graphdurchmusterung, Breiten- und Tiefensuche

Vorlesung Datenstrukturen

Übung 13 Algorithmen II

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

Punkt-in-Polygon-Suche Übersicht

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

Graphalgorithmen Minimale Spannbäume. Kruskal: Minimaler Spannbaum

Konvexe Hülle. Konvexe Hülle. Mathematik. Konvexe Hülle: Definition. Mathematik. Konvexe Hülle: Eigenschaften. AK der Algorithmik 5, SS 2005 Hu Bin

Seminar. Algorithmische Geometrie

Datenstrukturen und Algorithmen (SS 2013)

Algorithmen für Geographische Informationssysteme

Transkript:

Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen

Inhalt Closest Pair Divide & Conquer Bereichssuche Gitterverfahren k-d-tree Sweep-Line-Algorithmen Voronoi-Diagramme Fortune s Algorithmus Koordinatenkompression Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 2

Inhalt Closest Pair Divide & Conquer Bereichssuche Gitterverfahren k-d-tree Sweep-Line-Algorithmen Voronoi-Diagramme Fortune s Algorithmus Koordinatenkompression Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 3

Closest Pair In gegebener Menge von Punkten die beiden finden mit dem geringsten Abstand zueinander Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 4

Closest Pair Lösungsansätze Naiver Ansatz: BruteForce Für jeden Punkt Abstand zu den anderen berechnen O(n²) Alternative: Divide & Conquer O(n log n) Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 5

Closest Pair Divide & Conquer Vorgehensweise: Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 6

Closest Pair Divide & Conquer Vorgehensweise: Punktemenge aufteilen Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 7

Closest Pair Divide & Conquer Vorgehensweise: Punktemenge aufteilen Closest Pair für beide Seiten bestimmen (Rekursiv) Problem: Gesuchte Punkte liegen nicht auf der gleichen Seite Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 8

Closest Pair Divide & Conquer Vorgehensweise: Punktemenge aufteilen Closest Pair für beide Seiten bestimmen (Rekursiv) Problem: Gesuchte Punkte liegen nicht auf der gleichen Seite Lösung: Vergleich der Punkte deren maximaler Abstand zur Trennlinie kleiner als dright ist (max. 3 Vergleiche pro Punkt) Laufzeit: O(n log n) Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 9

Inhalt Closest Pair Divide & Conquer Bereichssuche Gitterverfahren k-d-tree Sweep-Line-Algorithmen Voronoi-Diagramme Fortune s Algorithmus Koordinatenkompression Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 10

Bereichssuche Gegeben: Menge von Punkten P Bereich/Intervall B Gesucht: Alle Punkte aus P die in B liegen Beispiele: Datenbankabfragen Geographische Informationssysteme Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 11

Bereichssuche - Lösungansätze Naiver Lösungsansatz: Jeden Punkt einzeln testen O(n) Alternative: Gitterverfahren Verwendung von k-d-trees Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 12

Bereichssuche - Gitterverfahren Idee Ebene wird mithilfe eines Gitters aufgeteilt Punkte werden in die jeweiligen Flächen einsortiert Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 13

Bereichssuche - Gitterverfahren Query: Es müssen nur die relevanten Flächen überprüft werden Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 14

Bereichssuche - Gitterverfahren Vorteile Leicht zu implementieren Verbesserung der Laufzeit Nachteile Gittergröße muss vorher bekannt sein zu klein: viele leere Felder zu groß: viele Punkte pro Feld Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 15

k-d-tree Definition k-d-tree ist ein k-dimensionaler binärer Suchbaum mit der Besonderheit das in jeder Tiefe nach einer anderen Dimension aufgeteilt wird Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 16

k-d-tree - Konstruktion P := Punktemenge d := Aktuelle Höhe im Baum BUILDTREE(P, d) { IF(P enthält nur einen Punkt) Return Blatt, das diesen Punkt enthält ELSE IF (d ist eine gerade Zahl) Splitte P via vertikalen Median in P1 (links) und P2 (rechts) auf ELSE Splitte P via horizontalen Median in P1 (oben) und P2 (unten) auf } vleft = BUILDTREE(P1, d+1) vright = BUILDTREE(P2, d+1) Erzeuge Knoten v mit den Kindern vleft und vright Return v Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 17

k-d-tree Beispiel Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 18

k-d-tree Beispiel Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 19

k-d-tree Beispiel Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 20

k-d-tree Beispiel - Bereichssuche v := Startknoten R := Bereich indem gesucht wird d := Aktuelle Höhe im Baum List RANGEQUERY(v, R, d) { IF(v == NULL) return leere Liste liste = leere Liste IF(v ist im Bereich R) Füge v zu liste hinzu IF(v ist größer als linker/unterer Rand von R) // abhängig von d vleft ist linkes Kind von v Füge RANGEQUERY(vLeft, R, d+1) zu liste hinzu IF(v ist kleiner gleich rechter/oberer Rand von R) // abhängig von d vright ist rechtes Kind von v Füge RANGEQUERY(vRight, R, d+1) zu liste hinzu return liste } Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 21

k-d-tree Beispiel - Bereichssuche Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 22

k-d-tree Vorteile & Nachteile Vorteile Laufzeit: Aufbau: O(n log n) Anfrage: O(log n + x) Nachteile Aufwendig zu implementieren Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 23

Inhalt Closest Pair Divide & Conquer Bereichssuche Gitterverfahren k-d-tree Sweep-Line-Algorithmen Voronoi-Diagramme Fortune s Algorithmus Koordinatenkompression Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 24

Sweep-Line-Algorithmen Ziel: k-dimensionales statisches Problem in k-1-dimensionales dynamisches Problem umwandeln Idee: Eine Sweep-Line die diskret über die sortierten Punkte wandert und sie verarbeitet Beispiel: HEISENBERG aus dem Online-Judge Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 25

Sweep-Line-Algorithmen - Heisenberg Sweep-Line trifft Streckenbeginn: Füge Strecke zu S hinzu Sweep-Line trifft auf Streckenende: Entferne Strecke aus S Sweep-Line trifft auf vertikale Strecke: Berechne Schnittpunkte mit Strecken aus S S{1} Schnitte: 0 Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 26

Sweep-Line-Algorithmen - Heisenberg Sweep-Line trifft Streckenbeginn: Füge Strecke zu S hinzu Sweep-Line trifft auf Streckenende: Entferne Strecke aus S Sweep-Line trifft auf vertikale Strecke: Berechne Schnittpunkte mit Strecken aus S S{1,2} Schnitte: 0 Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 27

Sweep-Line-Algorithmen - Heisenberg Sweep-Line trifft Streckenbeginn: Füge Strecke zu S hinzu Sweep-Line trifft auf Streckenende: Entferne Strecke aus S Sweep-Line trifft auf vertikale Strecke: Berechne Schnittpunkte mit Strecken aus S S{1,2} Schnitte: 1 Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 28

Sweep-Line-Algorithmen - Heisenberg Sweep-Line trifft Streckenbeginn: Füge Strecke zu S hinzu Sweep-Line trifft auf Streckenende: Entferne Strecke aus S Sweep-Line trifft auf vertikale Strecke: Berechne Schnittpunkte mit Strecken aus S S{1} Schnitte: 3 Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 29

Sweep-Line-Algorithmen - Heisenberg Sweep-Line trifft Streckenbeginn: Füge Strecke zu S hinzu Sweep-Line trifft auf Streckenende: Entferne Strecke aus S Sweep-Line trifft auf vertikale Strecke: Berechne Schnittpunkte mit Strecken aus S S{} Schnitte: 4 Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 30

Sweep-Line-Algorithmen - Heisenberg Sweep-Line trifft Streckenbeginn: Füge Strecke zu S hinzu Sweep-Line trifft auf Streckenende: Entferne Strecke aus S Sweep-Line trifft auf vertikale Strecke: Berechne Schnittpunkte mit Strecken aus S Laufzeit: O(n log n) S{} Schnitte: 4 Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 31

Inhalt Closest Pair Divide & Conquer Bereichssuche Gitterverfahren k-d-tree Sweep-Line-Algorithmen Voronoi-Diagramme Fortune s Algorithmus Koordinatenkompression Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 32

Topcoder Watchtower Gegeben: Menge an Wachtürmen mit dazugehörigen Koordinaten Gesucht: Größe der Fläche für die jeder Wachturm verantwortlich ist Fläche der Polygone mit den Punkten die dem jeweiligen Wachturm am nächsten sind Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 33

Topcoder Watchtower - Lösungsansatz Naiver Lösungsansatz: Berechne für jeden Punkt Geraden Schnittpunkte der Geraden bestimmen O(n⁴) Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 34

Voronoi-Diagramm - Definition Das Voronoi-Diagramm für eine Punktmenge P ist die Einteilung der Ebene in Gebiete gleicher nächster Nachbarn Für den Punkt p ϵ P ist die Voronoi Region V(p) die Menge aller Punkte die näher zu p sind als zu irgend einem andern Punkt aus der Menge P Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 35

Voronoi-Diagramm Fortune's Algorithmus Beach-Line: Besteht aus zusammenhängenden Parabeln Punkte auf der Beach-Line haben den gleichen Abstand zur Sweep-Line, wie zu ihrem nähesten Punkt Wird durch binären Suchbaum realisiert Sweep-Line: diskret wandernde Linie Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 36

Voronoi-Diagramm Fortune s Algorithmus Site-Event: Sweep-Line passiert nächsten Punkt Knoten zu binärem Suchbaum hinzugefügt Circle-Event: neuer Punkt für das fertige Diagramm bestimmbar Punkt wird aus Suchbaum entfernt Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 37

Voronoi-Diagramm Fortune's Algorithmus P := Menge der gegebenen Punkte K := doppelt verkettete Liste der Kanten Q := Prioritätswarteschlange mit Events (sortiert nach y-koordinate) B := Binärer Suchbaum für Beach-Line FOR ALL p aus P { Erstelle ein Site-Event für p und füge es zu Q hinzu; } WHILE(!q.empty) { e = Das erste Element von der Warteschlange; IF(e ist Site-Event) { Erstelle zu e zugehöriges Circle-Event Füge dieses Event zu B hinzu if(event schneidet anderes Event) { Entferne beide Events aus Q Berechne neues Circle-Event und speichere es in Q } } ELSE { Entferne alle Nachbarn von e aus Q Berechne daraus die neue Kante und speichere sie in K Aktualisiere die Circle-Events der neuen Nachbarn in Q } } Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 38

Voronoi-Diagramm Fortune's Algorithmus Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 39

Voronoi-Diagramm Fortune's Algorithmus Laufzeit O(n log n) Speicher O(n) Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 40

Inhalt Closest Pair Divide & Conquer Bereichssuche Gitterverfahren k-d-tree Sweep-Line-Algorithmen Voronoi-Diagramme Fortune s Algorithmus Koordinatenkompression Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 41

Koordinatenkompression Gegeben: Großer Raum mit wenig Objekten Ziel: Lücken entfernen Beispiel: SafeJourney Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 42

Topcoder - SafeJourney Gegeben: Stadtplan mit horizontalen und vertikalen Straßen Gesucht: Minimale Anzahl an zu überquerenden Straßen um von Punkt A zu einem Punkt B zu gelangen Problem: Sehr große Fläche der Ebene Nur wenige relevante Punkte Lösung: Koordinatenkompression Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 43

Koordinatenkompression Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 44

Koordinatenkompression Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 45

Koordinatenkompression Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 46

Koordinatenkompression Danach: Dijkstra Breitensuche Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 47

Fragen?? Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 48

Quellen Hallo Welt -Vorträge zu Geometrie 2 von 2010, 2012, 2013 http://www.cs.umd.edu/~mount/754/lects/754lects.pdf Closest Pair https://www.cs.ucsb.edu/~suri/cs235/closestpair.pdf https://en.wikipedia.org/wiki/closest_pair_of_points_proble m Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 49

Quellen Bereichssuche, k-d-tree http://ls11-www.cs.unidortmund.de/people/gutweng/ad08/vo23_26_quadtre esws08.pdf http://algo.informatik.unifreiburg.de/bibliothek/books/ad-buch/k7/slides/05.pdf https://www.cise.ufl.edu/class/cot5520fa09/cg_rangek Dtrees.pdf Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 50

Quellen Voronoi-Diagramme http://blog.ivank.net/fortunes-algorithm-andimplementation.html http://www.ams.org/samplings/feature-column/fcarcvoronoi http://community.topcoder.com/tc?module=static&d1=m atch_editorials&d2=sr176 http://mapviewer.skynet.ie/java/algorithm.html http://community.topcoder.com/i/srm/srm176_2.gif Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 51

Quellen Koordinatenkompression http://www.quora.com/what-is-coordinate-compression http://community.topcoder.com/stat?c=problem_statement &pm=5918&rd=8074 https://community.topcoder.com/tc?module=static&d1=mat ch_editorials&d2=srm277 Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Folie 52