Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
6.5. GEOMETRISCHE ALGORITHMEN UND REELLE RAM 151<br />
Falls die L<strong>in</strong>ie L(a, b) die Gleichung y = kx + q hat, liegt r genau dann über dieser<br />
L<strong>in</strong>ie, wenn<br />
ry > krx + q.<br />
Auch diese Entscheidung dauert O(1) Schritte.<br />
Beispiel 3 (DAS INNERE EINES POLYGONS). E<strong>in</strong>gabe: E<strong>in</strong> konvexes Polygon<br />
P und e<strong>in</strong> Punkt r.<br />
Ausgabe: Entscheidung, ob r im Inneren von P liegt.<br />
Bemerkung 1. E<strong>in</strong> Polygon P ist e<strong>in</strong>e Liste von Punkten, die als die Ecken von<br />
P bezeichnet werden. E<strong>in</strong> Polygon P = (v0, v1, . . .,vn−1) heißt simple, falls sich die<br />
Strecken L(vi, vi+1) (wobei i+1 modulo n berechnet wird) nur <strong>in</strong> den ” erwarteten“<br />
Ecken schneiden, d.h., der Durchschnitt von L(vi, vi+1) und L(vj, vj+1) mit i =<br />
j ist vi, falls j + 1 = i, oder vj, falls i + 1 = j, und ansonsten leer. Falls wir<br />
aus der Ebene die Strecken e<strong>in</strong>es simplen Polygons P entfernen, erhalten wir zwei<br />
zusammenhängende Teile, e<strong>in</strong>en gebundenen, der das Innere von P genannt wird,<br />
und e<strong>in</strong>en weiteren, der als das Äußere von P bezeichnet wird.<br />
E<strong>in</strong> simples Polygon P heißt konvex, falls se<strong>in</strong> Inneres jede Strecke enthält, deren<br />
Endpunkte es enthält. Beispiele:<br />
•<br />
<br />
<br />
<br />
•<br />
<br />
•<br />
<br />
<br />
<br />
<br />
<br />
• <br />
• • <br />
•<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
•<br />
•<br />
<br />
<br />
• <br />
•<br />
• <br />
•<br />
<br />
<br />
<br />
•<br />
<br />
•<br />
•<br />
<br />
• <br />
<br />
<br />
<br />
• <br />
Konvexes Polygon Nichtkonvexes Polygon Nichtsimples Polygon<br />
E<strong>in</strong> konvexes Polygon wird als e<strong>in</strong>e Liste v0, v1, . . . , vn−1 von Punkten angegeben,<br />
wobei wir annehmen, dass die Orientierung im Uhrzeigers<strong>in</strong>n erfolgt und ke<strong>in</strong>e zwei<br />
benachbarten Ecken auf der gleichen L<strong>in</strong>ie liegen:<br />
v0<br />
vn−1<br />
v1<br />
·<br />
·<br />
·<br />
• • <br />
•<br />
<br />
<br />
<br />
<br />
•<br />
• <br />
<br />
<br />
<br />
<br />
•<br />
•<br />
<br />
<br />
vn−2<br />
Um unseren Algorithmus zu vere<strong>in</strong>fachen, nehmen wir zusätzlich an, dass die x-<br />
Koord<strong>in</strong>aten der Punkte v0, . . . , vn−1 vone<strong>in</strong>ander verschieden s<strong>in</strong>d.<br />
Algorithmus für das INNERE EINES POLYGONS<br />
1. Wir wählen e<strong>in</strong>en Punkt p im Inneren von P.<br />
2. Die Halbl<strong>in</strong>ien von p zu den Ecken v0, . . .,vn−1 teilen die Ebene <strong>in</strong> n Sektoren.<br />
Wir bestimmen den Sektor, <strong>in</strong> dem sich der gegebene Punkt r bef<strong>in</strong>det, <strong>in</strong><br />
O(log n) Schritten wie folgt.<br />
v2