Softwarepraktikum WS 2003 Thema: Schnitt von Halbebenen. Markus Esch Jörg Jakoby Alexander Betz

Größe: px
Ab Seite anzeigen:

Download "Softwarepraktikum WS 2003 Thema: Schnitt von Halbebenen. Markus Esch Jörg Jakoby Alexander Betz"

Transkript

1 Softwarepraktikum WS 2003 Thema: Schnitt von Halbebenen Markus Esch Jörg Jakoby Alexander Betz Universität Trier Prof. Stefan Näher Algorithms and Data Structures Group

2 Inhaltsverzeichnis I Einleitung...Seite 3 II Theoretische Grundlagen...Seite 4 III Implementierung...Seite 6 IV Probleme/Lösungen...Seite 9 V Bedienung...Seite 10 2

3 I Einleitung Im Rahmen unseres Softwarepraktikums im Hauptstudium befassten wir uns mit dem Thema "Schnitt von Halbebenen". Wir sollten ein Programm erstellen welches eine beliebige Menge von Halbebenen als Eingabe erhält und daraus den Schnitt berechnet und darstellt. Die Realisierung sollte in C++ unter Verwendung der LEDA Bibliothek erfolgen. 3

4 II Theoretische Grundlagen Eine Halbebene ist die Menge aller Punkte auf der gleichen Seite einer Geraden. Also definiert eine Gerade g eine obere und eine untere Halbebene. Der Schnitt mehrerer Halbebenen (HE) ist ein konvexes ( möglicherweise unbeschränktes ) Polygon, da der Schnitt konvexer Mengen wieder konvex ist. Ziel ist es die Folge der Ecken des Schnittpolygons zu berechnen. Dazu führen wir das Problem auf die Berechnung der konvexen Hülle einer geeigneten Punktmenge zurück. Das heißt, wir transformieren die definierenden Geraden in duale Punkte. Zu einer Geraden l : y= ax + b ist der duale Punkt D(l) = (a,b). Die duale Gerade zu dem Punkt p = (a,b) ist definiert als D(p) : y= - ax + b. Der Punkt p liegt oberhalb (auf/unterhalb) einer Geraden l genau dann wenn die Gerade D(p) oberhalb (auf/unterhalb) vom Punkt D(l) liegt. Wir unterteilen das ursprüngliche Problem in zwei Teilprobleme: Zum einen die Berechnung des Schnittes der oberen Halbebene und zum anderen der Berechnung des Schnittes der unteren Halbebene. Die Lösung des Gesamtproblems erhält man dann durch Schnitt der Ergebnismengen der beiden Teilprobleme. Wir beschränken uns hier auf die Beschreibung der Schnittberechnung der oberen Halbebene (S + ), da die Berechnung der unteren Halbebene (S - ) analog erfolgt. Algorithmus zur Berechnung von S + 1. Berechnung der dualen Punkte pi = D(li) für i = 1,..,m (m = # obere HE) 2. Berechnung der oberen konvexen Hülle H von {p 1,...,p m } (Wir verwenden hierzu den Algorithmus Graham's Scan (siehe unten)) 3. Seien e 1,...,e n die Kanten von H von links nach rechts. Nun berechnen wir die Folge der Geraden L 1,...,L n so, dass e i Teilmenge von L ist. 4. Berechnung und Ausgabe von D -1 (L 1 ),...,D -1 (L n ). Dieser Algorithmus hat die Laufzeit O(m*logm). Graham's Scan (zur Berechnung der oberen Hülle (untere Hülle analog)) Seien S = {q 1,...,q n } die Punkte deren obere konvexe Hülle berechnet werden soll. 4

5 1. Finde xy-lexikographisches Maximum a und Minimum b. 2. Ermittlung der Punkte oberhalb der Strecke ab. Dazu verwendet man das Orientation Prädikat (siehe unten). Also ergibt sich: S 1 = Menge der Punkte oberhalb von ab = {q S Orientation (a,b,q) = 0}; S 1 S 3. Initialisiere Stack mit qn,q1,q2 4. Schritt s s+1: while (! x t-1,x t,q s+1 right-turn) do pop(x t ) od push (q s+1 ) Orientation Prädikat Seien die Punkte p,q,r gegeben. Orientation (q,p,r) = sign [( qx-px)(ry-py)-(qy-py)(rx-px)] Ist Orientation (q,p,r) = -1, so liegt der Punkt r rechts der Geraden qp. Ist Orientation (q,p,r) = 0, so liegt der Punkt r auf der Geraden qp. Andernfalls liegt der Punkt r links der Geraden qp. Bestimmung des Durchschnitts von S + und S - Zur Bestimmung des Durchschnitts von S + und S - verwendet, sondern eine eigene Funktion geschrieben. haben wir keinen bekannten Algorithmus 5

6 III Implementierung Unser Programm besteht aus den beiden Dateien halbebenen.c und halbebenen.h. Die Datei halbebenen.h enthält die Funktionen upperhull, lowerhull und intersect. Als Eingabe erhalten upperhull und lowerhull jeweils eine Punktliste. Die Funktionen berechnen mit dem oben beschriebenen Graham's Scan Algorithmus die obere bzw. untere konvexe Hülle der Eingabepunkte und geben das Ergebnis als Punktliste zurück. Der Funktion intersect werden die Segmente des oberen und unteren Halbebenenschnittes übergeben. Die Segmente sind die Strecken zwischen den einzelnen Ecken des Schnittpolygons. Da die Polygone nach links und rechts ins Unendliche verlaufen, werden sie künstlich durch den linken bzw. rechten Fensterrand beschränkt. Außerdem werden noch die Eckpunkte des oberen und des unteren Schnittes übergeben. Die Funktion berechnet den Durchschnitt des oberen und des unteren Halbraumschnittes. Unsere selbstgeschriebene Funktion zur Berechnung des Durchschnitts von S + und S - bestimmt zunächst vier Punkte: "upleft", "upright", "lowleft" und "lowright". Wobei "upleft" der linke Endpunkt des am weitesten links liegenden Segmentes des oberen Schnittpolygons ist. Die anderen Punkte ergeben sich analog. Nun wird in einer doppelten Forschleife der Punkt "left", dies ist der linke Schnittpunkt von S + und S -, berechnet. (beachte: Dieser Schnittpunkt existiert unter Umständen nicht, nämlich dann wenn sich S + und S - außerhalb des Fensters schneiden). forall (currend_low, lower_segs){ forall (currend_up, upper_segs){ if (currend_low.intersection (currend_up, left)){ stop = true; break; } } if (stop) break; } 6

7 Die äußere Forschleife durchläuft die unteren Segmente von links, die innere Forschleife durchläuft die oberen Segmente von links. In der If - Abfrage wird geprüft ob sich die beiden Segmente schneiden. Ist dies der Fall, wird der Schnittpunkt in "left" gespeichert und die Schleifen werden verlassen. Analog wird der rechte Schnittpunkt berechnet. Beide Schnittpunkte können natürlich auch gleich sein, nämlich dann wenn der Schnittpunkt von S + und S - auf der linken oder rechten Seite außerhalb des Fensters liegt. Mit den folgenden Abfragen wird nun überprüft ob der Schnittpunkt von S + und S - auf der linken oder rechten Seite außerhalb des Fensters liegt: i) if(upleft.ycoord() < lowleft.ycoord()) ii) if(upright.ycoord() < lowright.ycoord()) Ergibt die erste Abfrage "true", so liegt der Schnittpunkt von S + und S - auf der linken Seite außerhalb des Fensters. Ist die zweite Abfrage "true" liegt der Schnittpunkt auf der rechten Seite außerhalb des Fensters. Nun können vier Fälle auftreten: 1) i) und ii) sind true: Dann besteht der Schnitt von S + und S - aus allen Punkten von S + und S -, sowie den Punkten upleft, upright, lowleft, lowright. 2) i) und ii) sind false: Dann besteht der Schnitt von S + und S - aus den Punkten "left" und "right", sowie den Eckpunkten p von S + und S - für deren y - Koordinate gilt: left.ycoord() < p.ycoord() < right.ycoord() 3) i )true und ii) false; Dann besteht der Schnitt von S + und S - aus den Punkten "upleft", "upright", "right" sowie den Eckpunkten von S + und S - für deren y - Koordinate gilt: p.ycoord() < right.ycoord() 4) i) false und ii) true: Analog zu Fall 3) Die Funktion liefert nun die entsprechend dieser Unterscheidung ermittelte Punktmenge zurück. 7

8 Die Datei halbebenen.c enthält die Methoden: calc_lower_average, calc_upper_average, dispay_time und main. Die Methode calc_upper_average bzw. calc_lower_average erhält als Eingabe eine Liste von Linien und eine Liste der dazugehörigen dualen Punkte. Daraus wird der obere bzw. untere Halbebenenschnitt errechnet. Dazu wird der in Teil II beschriebene Algorithmus zur Berechnung von S + bzw. S - verwendet. Die Spezialfälle, in denen weniger als drei Linien eingegeben wurden, werden abgefangen und gesondert behandelt, da der Graham's Scan Algorithmus mindestens drei Punkte als Eingabe benötigt. Wurde nur eine Gerade eingegeben, ist der Schnitt Trivialerweise die gesamte obere bzw. untere Halbebene. Bei zwei Geraden muss nur der Schnittpunkt zwischen diesen beiden Geraden berechnet werden. Dazu wird die LEDA Methode "bool intersection(line g, point& p)" verwendet. Zurückgegeben wird eine Liste der Eckpunkte des Schnittpolygons. Die display_time Methode erhält als Eingabe einen Pointer eines Windowobjektes und flusht die Eingabe des Objektes. In der main Methode wird ein Window Objekt der LEDA Bibliothek verwendet um ein Eingabefenster zu realisieren. In einer Forschleife wird ständig auf Mauseingaben geachtet, die dann entsprechend verarbeitet werden. Wird einer der Buttons betätigt, werden die entsprechenden oben beschriebenen Methoden zur Berechnung des Schnittes aufgerufen. Wird in das Eingabefenster geklickt, wird der default - Zweig der switch Anweisung ausgeführt. Darin werden die Koordinaten der eingegebenen Punkte eingelesen und in Listen gespeichert. Es gibt zwei Linienlisten: Die erste speichert die Geraden welche obere Halbebenen definieren, die zweite Liste speichert entsprechend die Geraden, welche untere Halbebenen definieren. Zu allen Geraden werden auch die dualen Punkte berechnet und in Listen gespeichert. Wurde eine vertikale Linie eingegeben, wird die gesamte Eingabe um ein Epsilon gedreht. 8

9 IV Probleme / Lösung Probleme traten insbesondere dadurch auf, da der obere bzw. untere Halbebenenschnitt unbegrenzt ist. Um dieses Problem zu lösen beschränkten wir die Schnittpolygone künstlich durch den Rand des Eingabefensters. Ein weiteres Problem entstand, wenn mehrere parallele Linien eingegeben wurden, die den gleichen Halbraum beschrieben. Da sich diese Linien nicht schneiden, funktionierten die verwendeten Algorithmen nicht. Aus diesem Grund haben wir diesen Fall gesondert behandelt. Die irrelevanten parallelen Linien wurden aus den Linienlisten gelöscht. Hierbei ist es einfach festzustellen welche Linien in diesem Sinne irrelevant sind. Im Fall von oberen Halbebenen ist nur die parallele Linie mit der höchsten y-koordinaten relevant. Im Fall der unteren Halbebenen ist dementsprechend die Linie mit der niedrigsten y-koordinate relevant. 9

10 V Bedienung Dies ist das GUI unseres Programms: Die Buttons Exit: Beendet das Programm Clear: Löscht den Inhalt des Eingabefensters S+: Berechnet den oberen Halbebenenschnitt und stellt ihn in dem Ein- /Ausgabefenster dar S-: Analog zu S+ Schnitt(S+,S-): Berechnet den Durchschnitt des oberen und unteren Halbebenenschnittes 10

11 Bedienung des Eingabefensters In dem Eingabefenster können beliebige Halbebenen definiert werden. Eine Halbebene wird jeweils durch drei Mausklicks beschrieben. Die ersten beiden eingegebenen Punkte definieren die Gerade, der dritte Punkt legt fest ob es sich um eine obere oder untere Halbebene handelt. Klickt man oberhalb der Gerade handelt es sich um eine obere Halbebene, die Gerade wird dann blau eingefärbt dargestellt. Untere Halbebenen werden durch einen Punkt unterhalb der Geraden festgelegt, diese Geraden werden sodann gelb dargestellt. 11

12 Dementsprechend wird der obere Halbebenenschnitt blau angezeigt, der untere Halbebenenschnitt gelb und der Durchschnitt von S + und S - grün. 12

Seminar. Algorithmische Geometrie

Seminar. Algorithmische Geometrie Seminar Algorithmische Geometrie WS 2000/2001 Thema: Konvexe Hülle Mirko Dennler 21439 Inhaltsverzeichnis Konvexe Hülle 1. Problemstellung 3 2. GRAHAMS SCAN 4-5 3. JARVIS' MARCH 5-6 4. QUICK HULL 6-7 5.

Mehr

Geradenarrangements und Dualität von Punkten und Geraden

Geradenarrangements und Dualität von Punkten und Geraden Vorlesung Algorithmische Geometrie von Punkten und Geraden INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 12.06.2012 Dualitätsabbildung Bisher haben wir Dualität für planare

Mehr

Geradenarrangements und Dualität von Punkten und Geraden

Geradenarrangements und Dualität von Punkten und Geraden Vorlesung Algorithmische Geometrie von Punkten und Geraden INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 12.06.2012 Dualitätsabbildung Bisher haben wir Dualität für planare

Mehr

Geradenarrangements und Dualität von Punkten und Geraden

Geradenarrangements und Dualität von Punkten und Geraden Vorlesung Algorithmische Geometrie von Punkten und Geraden INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 17.06.2014 1 Dualitätsabbildung Bisher haben wir Dualität für planare

Mehr

Geometrische Algorithmen

Geometrische Algorithmen Geometrische Algorithmen Thomas Röfer Motivation Scan-line-Prinzip Konvexe Hülle Distanzprobleme Voronoi-Diagramm Rückblick Manipulation von Mengen Vorrangwarteschlange Heap HeapSort swap(a, 0, 4) 1 5

Mehr

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

Voronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 03.06.2014 1 Das Postamt-Problem b(p, q) = {x 2 R 2 : xp = xq } p q h(p, q) h(q, p) = {x

Mehr

Algorithmische Techniken für Geometrische Probleme

Algorithmische Techniken für Geometrische Probleme Algorithmische Techniken für Geometrische Probleme Berthold Vöcking 14. Juni 2007 Inhaltsverzeichnis 1 Die Sweepline-Technik 2 1.1 Schnitte orthogonaler Liniensegmente............... 2 1.2 Schnitte beliebiger

Mehr

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

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 29.05.2011 Das Postamt-Problem b(p, q) = {x R 2 : xp = xq } p q h(p, q) h(q, p) = {x :

Mehr

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

Geometrie. Hallo Welt! für Fortgeschrittene Simon Kuhnle. 11. Juli Geometrie Hallo Welt! für Fortgeschrittene 2008 Simon Kuhnle sisikuhn@stud.informatik.uni-erlangen.de 11. Juli 2008 Simon Kuhnle Geometrie 11.07.2008 1 / 33 Übersicht Übersicht 1 Grundlagen 2 ccw 3 Konvexe

Mehr

2.1. Konvexe Hülle in 2D

2.1. Konvexe Hülle in 2D Wir wollen die konvexe Hülle einer Menge von Punkten P = {p 1,..., p n } in der Ebene R 2 bestimmen. y y x x Def. 21: Eine Teilmenge S der Ebene ist konvex gdw für jedes Paar das Liniensegment pq in S

Mehr

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

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 GRUNDZÜGE DER ALGORITHMISCHEN GEOMETRIE Klausur 18. Juli 2008, 10:15-12:15 Uhr Name:................................... Matrikelnummer:................................... Anzahl beschriebener Blätter (ohne

Mehr

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

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 17.07.2012 Objekttypen in Bereichsabfragen y0 y0 y x x0 Bisher

Mehr

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

Geometrie I. Polygone. Dominik Huber Hallo Welt! für Fortgeschrittene. Informatik 2 Programmiersysteme Martensstraße Erlangen Geometrie I Polygone Dominik Huber 28.5.2018 Hallo Welt! für Fortgeschrittene Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Gliederung Wiederholung Analytische Geometrie Abstand Punkt

Mehr

Algorithmische Geometrie: Delaunay Triangulierung (Teil 2)

Algorithmische Geometrie: Delaunay Triangulierung (Teil 2) Algorithmische Geometrie: Delaunay Triangulierung (Teil 2) Nico Düvelmeyer WS 2009/2010, 2.2.2010 Überblick 1 Delaunay Triangulierungen 2 Berechnung der Delaunay Triangulierung Randomisiert inkrementeller

Mehr

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

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 17.07.2012 Objekttypen in Bereichsabfragen y0 y x x0 Bisher

Mehr

Geometrie 1. Christian Bay Christian Bay Geometrie / 46

Geometrie 1. Christian Bay Christian Bay Geometrie / 46 Geometrie 1 Christian Bay 02.07.2013 Christian Bay Geometrie 1 02.07.2013 1 / 46 Inhaltsverzeichnis Grundlagen CCW Polygone Picks Theorem Konvexe Hülle Christian Bay Geometrie 1 02.07.2013 2 / 46 Geometrie

Mehr

Algorithmische Geometrie: Lineare Optimierung (I)

Algorithmische Geometrie: Lineare Optimierung (I) Algorithmische Geometrie: Lineare Optimierung (I) Nico Düvelmeyer WS 2009/2010, 17.11.2009 Überblick 1 Geometrie von Gießformen 2 Durchschnitte von Halbebenen 3 Inkrementeller Algorithmus Überblick 1 Geometrie

Mehr

Füllen von Primitiven

Füllen von Primitiven Füllen von Primitiven Basisproblem der 2D-Graphik Anwendung: füllen beliebiger Flächen (Polygone, Freiformkurven) Darstellung von Buchstaben dicke Primitive (Linien, Kreise, Kurven), Teilproblem in der

Mehr

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

Liniensegmentschnitt. Doppelt verkettete Kantenliste. Überlagerung von 2 ebenen Graphen. Boolsche Operatoren für einfache Polygone (LEDA) Liniensegmentschnitt Motivation, Überlagerung von Karten, Problemformulierung Ein einfaches Problem und dessen Lösung mit Hilfe des Sweep-Line Prinzips Output-sensitiver Liniensegmentschnittalgorithmus

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 03.12.2013 Algorithmische Geometrie: Schnitte von Strecken Sweep-Line INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg

Mehr

Algorithmische Geometrie: Arrangements und

Algorithmische Geometrie: Arrangements und Algorithmische Geometrie: Arrangements und Dualität Nico Düvelmeyer WS 2009/2010, 19.1.2010 Überblick 1 Strahlenverfolgung und Diskrepanz 2 Dualität Dualitäts-Abbildung Transformation des Problems zur

Mehr

Dualität + Quad-trees

Dualität + Quad-trees Übung Algorithmische Geometrie Dualität + Quad-trees LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Andreas Gemsa 30.06.2011 Übersicht Übungsblatt 10 - Dualität

Mehr

2.11 Clipping von Linien

2.11 Clipping von Linien 2.11 Clipping von Linien Sollen Objekte in der Bildebene innerhalb eines Fensters dargestellt werden, so wird ein Verfahren benötigt, mit dem alle außerhalb des Fensters liegenden Objektteile abgeschnitten

Mehr

Geometrie I. Laura Lawniczak Hallo Welt -Seminar - LS 2

Geometrie I. Laura Lawniczak Hallo Welt -Seminar - LS 2 Geometrie I Laura Lawniczak 12.07.2017 Hallo Welt -Seminar - LS 2 Inhalt Grundlagen Abstandsberechnung Punkt-Gerade Punkt-Segment CCW Polygone Punkt in Polygon Pick s Theorem Konvexe Hülle 12.07.2017 Laura

Mehr

Bereichsabfragen II. 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 INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 20.05.2014 Objekttypen in Bereichsabfragen y0 y0 y x x0 Bisher betrachteter Fall Eingabe:

Mehr

Boolesche Operationen in 2D

Boolesche Operationen in 2D 1 Boolesche Operationen in 2D Bevor die komplizierten Operationen mit 3 dimensionalen Körpern gebracht werden, soll das Prinzip am Beispiel von 2 Flächen demonstriert werden. Die 2D Flächen seien Polygone,

Mehr

Algorithmische Geometrie 3. Schnitte von Liniensegmenten

Algorithmische Geometrie 3. Schnitte von Liniensegmenten Algorithmische Geometrie 3. Schnitte von Liniensegmenten JProf. Dr. Heike Leitte Computergraphik und Visualisierung Inhaltsverzeichnis 1. Einführung 2. Konvexe Hülle 3. Schnitte von Liniensegmenten 4.

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/36 Datenstrukturen und Algorithmen Vorlesung 20: (K33) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/

Mehr

Inhaltsverzeichnis. 1 Hardwaregrundlagen

Inhaltsverzeichnis. 1 Hardwaregrundlagen Inhaltsverzeichnis 1 Hardwaregrundlagen 2.4 2.5 Perspektivische 2.6 Parallele 2.7 Umsetzung der Zentralprojektion 2.8 Weitere 2.9 Koordinatensysteme, Frts. 2.10 Window to Viewport 2.11 Clipping 3 Repräsentation

Mehr

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

Geometrische Algorithmen Einige einfache Definitionen: Ist ein Punkt in einem Polygon? Punkt-in-Polygon-Problem. Das Punkt-in-Polygon-Problem Geometrische Algorithmen Einige einfache Definitionen: Punkt: im n-dimensionalen Raum ist ein n-tupel (n Koordinaten) Gerade: definiert durch zwei beliebige Punkte auf ihr Strecke: definiert durch ihre

Mehr

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

Geometrie I. Sebastian Redinger Informatik 2 Programmiersysteme Martensstraße Erlangen Geometrie I Sebastian Redinger 01.07.2015 Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Gliederung Grundlagen CCW Polygone Picks Theorem Konvexe Hülle - Graham Scan - Jarvis March 2 Gliederung

Mehr

Es sei P ein einfaches Polygon in der Ebene; P habe n Ecken. Hilfssatz: Zu jedem einfachen Polygon mit mehr als 3 Ecken existiert eine Diagonale.

Es sei P ein einfaches Polygon in der Ebene; P habe n Ecken. Hilfssatz: Zu jedem einfachen Polygon mit mehr als 3 Ecken existiert eine Diagonale. 6. Polygontriangulierung: Wie bewacht man eine Kunstgalerie? 6.1. Grundlegendes zu Polygonen Es sei P ein einfaches Polygon in der Ebene; P habe n Ecken. Definition: Hilfssatz: Zu jedem einfachen Polygon

Mehr

Softwarepraktikum: Programmieren mit C++ und LEDA. Visualisierung der Konvexe-Hülle Algorithmen Quickhull und Graham Scan

Softwarepraktikum: Programmieren mit C++ und LEDA. Visualisierung der Konvexe-Hülle Algorithmen Quickhull und Graham Scan Softwarepraktikum: Programmieren mit C++ und LEDA Visualisierung der Konvexe-Hülle Algorithmen Quickhull und Graham Scan Verfasser: Uladizimir Bambalin Andreas Burkard Veranstalter: Matthias Baesken Aufgabenstellung:

Mehr

Algorithmische Geometrie, SoSe 2005 Skriptmitschrift vom 29. April 2005

Algorithmische Geometrie, SoSe 2005 Skriptmitschrift vom 29. April 2005 Algorithmische Geometrie, SoSe 2005 Skriptmitschrift vom 29. April 2005 Antonia Wittmers Igor Savchenko Konvexe Hüllen Inkrementeller Algorithmus für die konvexe Hülle Dabei heißt inkrementeller Algorithmus,

Mehr

Hochschule Darmstadt Informatik-Praktikum SS 2018 EIT Bachelor 3. Aufgabenblatt Funktionen - Unterprogramme

Hochschule Darmstadt Informatik-Praktikum SS 2018 EIT Bachelor 3. Aufgabenblatt Funktionen - Unterprogramme Ziel ist die Aufteilung eines Programms in Funktionen und Dateien Aufgabe 3: Diese Aufgabe ist die Weiterentwicklung von Aufgabe 2. Es ist ein Programm zu erstellen, in welchem der Anwender aus einer Anzahl

Mehr

2.2. Schnitte von Liniensegmenten

2.2. Schnitte von Liniensegmenten Wir wenden uns nun dem Problem (2) aus 1 zu. F15 Aus zwei Mengen S1, S2 von Liniensegmenten möchten wir alle Schnittpunkte der Segmente aus S1 mit denen aus S2 ermitteln. Wir legen fest, dass sich zwei

Mehr

Algorithmische Geometrie: Voronoi Diagramme (Teil 2)

Algorithmische Geometrie: Voronoi Diagramme (Teil 2) Algorithmische Geometrie: Voronoi Diagramme (Teil 2) Nico Düvelmeyer WS 2009/2010, 12.1.2010 Überblick 1 Definition und grundlegende Eigenschaften (Wied.) 2 Bestimmung des Voronoi Diagramms Gleitebenenverfahren

Mehr

Hallo Welt für Fortgeschrittene

Hallo Welt für Fortgeschrittene Hallo Welt für Fortgeschrittene Geometrie I Markus Götze Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Gliederung Grundlagen Polygone ccw Pick's Theorem Konvexe Hülle Hallo Welt für Fortgeschrittene

Mehr

2D-Clipping. Kapitel Clipping von Linien. y max. y min x min. x max

2D-Clipping. Kapitel Clipping von Linien. y max. y min x min. x max Kapitel 5 2D-Clipping Ziel: Nur den Teil einer Szene darstellen, der innerhalb eines Fensters sichtbar ist. y max y min x min x max Abbildung 5.1: Clip-Fenster 5.1 Clipping von Linien Zu einer Menge von

Mehr

(1) Geometrie. Vorlesung Computergraphik 3 S. Müller U N I V E R S I T Ä T KOBLENZ LANDAU

(1) Geometrie. Vorlesung Computergraphik 3 S. Müller U N I V E R S I T Ä T KOBLENZ LANDAU (1) Geometrie Vorlesung Computergraphik 3 S. Müller KOBLENZ LANDAU KOBLENZ LANDAU Organisatorisches Vorlesung CG 2+3 Die Veranstaltung besteht aus 2 Teilen, wobei in der Mitte und am Ende eine Klausur

Mehr

9 Arrangements und Dualität

9 Arrangements und Dualität 9 Arrangements und Dualität 9.1 Strahlenverfolgung und Diskrepanz Wir betrachten eine Anwendung aus der Computergraphik: realistische Bilder von 3D- Szenen lassen sich durch ray tracing berechnen. Für

Mehr

Übung 04 Mehrkörper Keplerproblem

Übung 04 Mehrkörper Keplerproblem Übung 04 Mehrkörper Keplerproblem 1 1 Lösung 1.1 Skizzieren des Algorithmus Aufgabe 1 1. Erstellen Sie skizzenhaft eine Möglichkeit der Berechnung aller Kräfte einer beliebigen Anzahl von Himmelskörpern.

Mehr

7. Transitive Hülle. Kante des Graphen. Zusatz-Kante der transitiven Hülle

7. Transitive Hülle. Kante des Graphen. Zusatz-Kante der transitiven Hülle In Anwendungen ist es oft interessant zu wissen, ob man überhaupt von einem Knoten v zu einem Knoten w gelangen kann, ganz gleich wie lang der Weg auch ist. Gegeben sei dabei ein gerichteter Graph G =

Mehr

Intensivübung zu Algorithmen und Datenstrukturen

Intensivübung zu Algorithmen und Datenstrukturen Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche

Mehr

2 Teil 2: Nassi-Schneiderman

2 Teil 2: Nassi-Schneiderman 2 Teil 2: Nassi-Schneiderman Wie kann man Nassi-Schneiderman in einer objektorientierten Sprache verwenden? Jedes Objekt besitzt Methoden, welche die Attribute des Objektes verändern. Das Verhalten der

Mehr

Einführung & Konvexe Hülle

Einführung & Konvexe Hülle Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 12.04.2011 AlgoGeom-Team Dozent Martin Nöllenburg noellenburg@kit.edu

Mehr

Punktlokalisation 1. Trapez-Zerlegungen. 2. Eine Suchstruktur. 3. Randomisierter, inkrementeller Algorithmus zur Konstruktion der Trapez-Zerlegung

Punktlokalisation 1. Trapez-Zerlegungen. 2. Eine Suchstruktur. 3. Randomisierter, inkrementeller Algorithmus zur Konstruktion der Trapez-Zerlegung Punktlokalisation 1. Trapez-Zerlegungen 2. Eine Suchstruktur 3. Randomisierter, inkrementeller Algorithmus zur Konstruktion der Trapez-Zerlegung 4. Analyse Punktlokalisation Einteilung in Streifen Anfragezeit:

Mehr

Abschlußtest Programmieren 30. Juni 2017 Name: Punkte von 32: Gruppe: Haase-Di Haase-Do Stanek-Di Stanek-Do

Abschlußtest Programmieren 30. Juni 2017 Name: Punkte von 32: Gruppe: Haase-Di Haase-Do Stanek-Di Stanek-Do Abschlußtest Programmieren 30. Juni 2017 Name: Punkte von 32: Gruppe: Haase-Di Haase-Do Stanek-Di Stanek-Do 1. (6 P) Schreiben Sie die folgenden mathematischen Ausdrücke als korrekte C++- Anweisungen (Variablendeklarationen,

Mehr

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

Das Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt Divide and Conquer Das Divide - and - Conquer Prinzip Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt 2 Quicksort: Sortieren durch Teilen

Mehr

Parallele Algorithmen in der Bildverarbeitung

Parallele Algorithmen in der Bildverarbeitung Seminar über Algorithmen - SoSe 2009 Parallele Algorithmen in der Bildverarbeitung von Christopher Keiner 1 Allgemeines 1.1 Einleitung Parallele Algorithmen gewinnen immer stärker an Bedeutung. Es existieren

Mehr

Algorithmische Geometrie Mitschrift /

Algorithmische Geometrie Mitschrift / Einleitung Algorithmische Geometrie beschäftigt sich mit dem Entwurf und der Analyse von effizienten Algorithmen für geometrische Probleme. Eingabedaten sind dabei geometrische Objekte, wie - Punkte -

Mehr

Vorlesung Algorithmische Geometrie Konvexe Hülle in R 3

Vorlesung Algorithmische Geometrie Konvexe Hülle in R 3 Vorlesung Algorithmische Geometrie Konvexe Hülle in R 3 INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 15.07.2014 1 Wdh: Konvexe Hülle in R 2 (VL1) Def: Eine Menge S R 2

Mehr

Einführung & Konvexe Hülle

Einführung & Konvexe Hülle Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 17.04.2012 AlgoGeom-Team Dozent Martin Nöllenburg noellenburg@kit.edu

Mehr

Algorithmische Geometrie

Algorithmische Geometrie Algorithmische Geometrie Martin Peternell TU Wien 31. Fortbildungstagung für Geometrie 2010, Strobl 1 Themen der Algorithmische Geometrie Entwurf von Algorithmen für geometrische Fragestellungen betreffend

Mehr

Computergraphik 1 LU ( ) Ausarbeitung Abgabe 2

Computergraphik 1 LU ( ) Ausarbeitung Abgabe 2 Computergraphik 1 LU (186.095) Ausarbeitung Abgabe 2 Beispiel 4... 2 CG1Object... 2 if (dobackfaceeculling && numvertexindec >=3)... 2 CG1ScanfilledPolygon CG1Polygon... 2... 2... 3 buildactivelist (int

Mehr

Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2

Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2 Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2 Neben vector ist list die zweite wichtige Containerklasse. Um unsere Kenntnisse von Containerklassen zu erweitern,

Mehr

Programmablaufpläne. Vorgehen zur Erstellung eines lauffähigen C-Programms

Programmablaufpläne. Vorgehen zur Erstellung eines lauffähigen C-Programms Programmablaufpläne Vorgehen zur Erstellung eines lauffähigen C-Programms Dieser Leitfaden soll eine Einführung in das Erstellen von Programmablaufplänen (kurz: PAP) geben. PAP erleichtern das Erstellen

Mehr

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

Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone Was bisher geschah Motivation, Beispiele geometrische Objekte im R 2 : Punkt, Gerade, Halbebene, Strecke, Polygon, ebene Zerlegung in Regionen (planare Graphen) maschinelle Repräsentation geometrischer

Mehr

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 7, Fallstudie Point-In-Polygon Algorithmus Diskretisierung: Linien zeichnen

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 7, Fallstudie Point-In-Polygon Algorithmus Diskretisierung: Linien zeichnen Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 7, 11.4.2016 Fallstudie Point-In-Polygon Algorithmus Diskretisierung: Linien zeichnen Fallstudie: Point-In-Polygon Algorithmus Annahme: abgegrenztes

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 5. Kontrollstrukturen Allgemein Kontrollstrukturen dienen zur Steuerung des Programmablaufs. (Bemerkung: C und C++ besitzen die selben Kontrollstrukturen.)

Mehr

Polygon Triangulation. robot.scr. "Art Gallery Problem" Sichtbarkeitspolygon. Algorithmische Geometrie - SS 99 - Th. Ottmann

Polygon Triangulation. robot.scr. Art Gallery Problem Sichtbarkeitspolygon. Algorithmische Geometrie - SS 99 - Th. Ottmann Polygon Triangulation "Art Gallery Problem" Sichtbarkeitspolygon robot.scr Triangulation simpler Polygone P w v u Satz: Triangulation existiert und besitzt n-2 Dreiecke Bew.: Induktion über n> 3. Suche

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 06: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von

Mehr

Geometrie 2. Julian Fischer Julian Fischer Geometrie / 30

Geometrie 2. Julian Fischer Julian Fischer Geometrie / 30 Geometrie 2 Julian Fischer 6.7.2009 Julian Fischer Geometrie 2 6.7.2009 1 / 30 Themen 1 Bereichssuche und kd-bäume 1 Bereichssuche 2 kd-bäume 2 Divide and Conquer 1 Closest pair 2 Beispiel: Points (IOI

Mehr

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

Hallo Welt! für Fortgeschrittene. Geometrie I. Philipp Erhardt. 19. Juli Philipp Erhardt Geometrie I 19. Juli / 27 Hallo Welt! für Fortgeschrittene Geometrie I Philipp Erhardt 19. Juli 2011 Philipp Erhardt Geometrie I 19. Juli 2011 1 / 27 Gliederung 1 Grundlagen 2 CCW 3 Punkt-in-Polygon 4 Pick s Theorem 5 Konvexe Hülle

Mehr

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe

Mehr

Einführung & Konvexe Hülle

Einführung & Konvexe Hülle Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 17.04.2012 AlgoGeom-Team Dozent Martin Nöllenburg noellenburg@kit.edu

Mehr

if ( Logischer Operator ) { } else { Anweisungen false

if ( Logischer Operator ) { } else { Anweisungen false if ( Logischer Operator ) { Anweisungen true else { Anweisungen false Bedingte Anweisungen Operatoren verknüpfen Variable zu neuen Ausdrücken, wir unterscheiden Arithmetische Operatoren Berechnung von

Mehr

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

Geometrie 1. Roman Sommer. Informatik 2 Programmiersysteme Martensstraße Erlangen Geometrie 1 Roman Sommer Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Grundlagen Punkte, Vektoren Schreibweise: Skalar: Vektor: Komponente: Punkt: (spitzer) Winkel zw. zwei Vektoren:

Mehr

M. Pester 29. Ein konvexes d-polytop ist eine begrenzte d-dimensionale polyedrale Menge. (d = 3 Polyeder, d = 2 Polygon)

M. Pester 29. Ein konvexes d-polytop ist eine begrenzte d-dimensionale polyedrale Menge. (d = 3 Polyeder, d = 2 Polygon) M. Pester 29 6 Konvexe Hülle 6.1 Begriffe Per Definition ist die konvexe Hülle für eine Menge S von lich vielen Punkten die kleinste konvexe Menge, die S enthölt (z.b. in der Ebene durch ein umspannes

Mehr

Algorithmische Bioinformatik 1

Algorithmische Bioinformatik 1 Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen

Mehr

Algorithmische Geometrie: Schnittpunkte von Strecken

Algorithmische Geometrie: Schnittpunkte von Strecken Algorithmische Geometrie: Schnittpunkte von Strecken Nico Düvelmeyer WS 2009/2010, 3.11.2009 3 Phasen im Algorithmenentwurf 1. Konzentration auf das Hauptproblem 2. Verallgemeinerung auf entartete Eingaben

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Map Labeling INSTITUT FÜR THEORETISCHE INFORMATIK 0 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016 Algorithmen und Datenstrukturen 2 Übung 1 Stefan Florian Palkovits, BSc 0926364 e0926364@student.tuwien.ac.at 12. Juni 2016 Aufgabe 1: Es existiert eine Reduktion von Problem A auf Problem B in O(n 3 +

Mehr

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 6 Pkt.) a) Erklären

Mehr

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 4 Pkt.) Gegeben

Mehr

5. Elementare Befehle und Struktogramme

5. Elementare Befehle und Struktogramme 5. Elementare Befehle und Struktogramme Programmablauf Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme Dr. Norbert Spangler / Grundlagen

Mehr

Kryptographische Protokolle

Kryptographische Protokolle Kryptographische Protokolle Lerneinheit 2: Generierung von Primzahlen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Wintersemester 2018/2019 15.11.2018 Einleitung Einleitung Diese Lerneinheit

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 25

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 25 Kapitel 9 Schleifen Seite 1 von 25 Schleifen - Schleifen werden zur wiederholten Ausführung von Anweisungen verwendet. - Es werden drei Arten von Schleifen unterschieden: o for -Schleife o while -Schleife

Mehr

Algorithmische Geometrie: Abfragen Orthogonaler Bereiche

Algorithmische Geometrie: Abfragen Orthogonaler Bereiche Algorithmische Geometrie: Abfragen Orthogonaler Bereiche Nico Düvelmeyer WS 2009/2010, 8.12.2009 Überblick 1 1-dimensionale Bereichsabfragen 2 Kd-Baum Struktur Aufbau Abfrage mit dem Kd-Baum 3 Range-Baum

Mehr

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

Übersicht über Informatik und Softwaresystemtechnik WS 99/00, Prof. Dr. Andreas Schwill Konvexe Hülle Hierbei handelt es sich um ein klassisches Problem aus der Algorithmischen Geometrie, dem Teilgebiet der Informatik, in dem man für geometrische Probleme effiziente Algorithmen bestimmt.

Mehr

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) 1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.3. Anweisungen und Kontrollstrukturen - 1 - Anweisung Anweisung Zuweisung Methodenaufruf

Mehr

Effiziente Algorithmen 2

Effiziente Algorithmen 2 Effiziente Algorithmen 2 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen

Mehr

Lösung zu Aufgabe 1 Blatt 9

Lösung zu Aufgabe 1 Blatt 9 Lösung zu Aufgabe 1 Blatt 9 Wir befinden uns in einem arbitragefreien 1-Perioden-Trinomialmodell. Die risikofreie Anlage β ist gegeben durch β 0 = 1 und β 1 = 1 + ρ mit ρ > 1. Die risikobehaftete Anlage

Mehr

Kontrollfragen Mikrocontroller Programmiersprache C H1203 Felix Rohrer

Kontrollfragen Mikrocontroller Programmiersprache C H1203 Felix Rohrer Block 1 1. Welcher Wert hat w? int w = 034; 28 (Dezimal) 034 wird als Octal interpretiert 34oct = 28dec 2. Wie lauten die Ergebnisse? unsigned int a = 3, b = 5, c = 7; unsigned int x, y, z; x = a == 3;

Mehr

Geometrie I. Tobias Langer Tobias Langer Geometrie I / 59

Geometrie I. Tobias Langer Tobias Langer Geometrie I / 59 Geometrie I Tobias Langer 02.07.2010 Tobias Langer Geometrie I 02.07.2010 1 / 59 1 Schulgeometrie Punkte & Geraden Dreieck Kreis Polygon 2 Schnitt von Geraden und Strecken 3 Punkt in Polygon Tobias Langer

Mehr

Hochschule Darmstadt Informatik-Praktikum WS 2016/2017 WIng Bachelor 4. Aufgabenblatt Modularisierung, Funktionen, Unterprogramme

Hochschule Darmstadt Informatik-Praktikum WS 2016/2017 WIng Bachelor 4. Aufgabenblatt Modularisierung, Funktionen, Unterprogramme Ziele sind das Arbeiten mit Funktionen, sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 4: Diese Aufgabe basiert auf der Aufgabe 3.

Mehr

KARL-FRANZENS-UNIVERSITÄT GRAZ. Seminar aus Reiner Mathematik. Die Museumswächter. Krupic Mustafa Wintersemester 2013/14

KARL-FRANZENS-UNIVERSITÄT GRAZ. Seminar aus Reiner Mathematik. Die Museumswächter. Krupic Mustafa Wintersemester 2013/14 KARL-FRANZENS-UNIVERSITÄT GRAZ Seminar aus Reiner Mathematik Die Museumswächter Krupic Mustafa Wintersemester 2013/14 Inhaltsverzeichnis 2 Inhaltsverzeichnis 1 Einleitung 3 2 Museumswächter-Satz 6 2.1

Mehr

Lineares Programmieren

Lineares Programmieren Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 03.05.2011 Nachtrag Art Gallery Problem Lässt sich der Triangulierungs-Algorithmus

Mehr

3. Übungsblatt zu Algorithmen I im SoSe 2017

3. Übungsblatt zu Algorithmen I im SoSe 2017 Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799

Mehr

Ausleuchtung/Überwachung von polygonalen Flächen

Ausleuchtung/Überwachung von polygonalen Flächen 1 Ausleuchtung/Überwachung von polygonalen Flächen 2 1. Beschreibung der Aufgabenstellung 3 Gegeben ist der Grundriss eines Raumes. 4 In den Ecken des Raumes sollen Geräte platziert werden, die zusammen

Mehr

Algorithmische Bioinformatik 1

Algorithmische Bioinformatik 1 Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen

Mehr

Algorithmische Geometrie Thema: Konvexe Hüllen

Algorithmische Geometrie Thema: Konvexe Hüllen Algorithmische Geometrie Thema: Konvexe Hüllen Christoph Hermes Hermes@hausmilbe.de 17. Juni 2003 Ausblick auf den Vortrag 1/32 1 Was sind konvexe Hüllen? Wozu braucht man sie? Wie kann man sie berechnen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Weitere Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick 2 Verbundanweisung 3 Bedingte Anweisung 4 Auswahlanweisung

Mehr

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A 2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,

Mehr

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

Algorithmische Geometrie: Rest Lokalisierung von Punkten; Voronoi Diagramme (1/2) Algorithmische Geometrie: Rest Lokalisierung von Punkten; Voronoi Diagramme (1/2) Nico Düvelmeyer WS 2009/2010, 22.12.2009 Überblick 1 Fertigstellung Kapitel 7 2 Definition Voronoi Diagramm 3 Grundlegende

Mehr

Programmieren in C (Übungsblatt 1)

Programmieren in C (Übungsblatt 1) 21.02.2017 Aufgabe 1: Programmausführung Programmieren in C (Übungsblatt 1) a) Bitte geben Sie den folgenden Programmcode ein: /* Beispiel fuer Textausgaben */ #include int main() { printf("c-programmierung

Mehr

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

Geometrische Algorithmen Voronoi-Diagramme. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Voronoi-Diagramme Folie 1 von 32 Geometrische Algorithmen Voronoi-Diagramme Folie 2 von 32 Voronoi-Diagramme Übersicht Problemstellung Animation zur Konstruktion eines Voronoi-Diagramms Definition, Eigenschaften eines Voronoi-Diagramms

Mehr