Logo von Mathlab.de
Informatik

Mathematische Computergrafik und geometrische Algorithmen

 Letzte Änderung: 12. Aug. 2004 
 

Konvexität und Polygone


0.1 Die Definiton
Eine Menge $ M $ heißt konvex, wenn für je 2 Punkte $ x,y \in M $ auch die Verbindungsstrecke beider Punkte in M liegt.
Geeignete Beispiele für konvexe Mengen:

a) $ n $ -dimensionale Kugel mit $ x^2_1 + x^2_2 + \ldots + x^2_n \leq 1$
b) Halbraum $ a_1 x_1 + \dots + a_1 x_2 > b $

0.2 Die Konvexe Hülle

Die konvexe Hülle $ H(M) $ einer Menge $ M $ ist die kleineste konvexe Menge, die $ M $ enthält.

Zur intuitiven Vorstellung:
$ H(M) $ beschreibt die Punkte in einer Ebene als inneres Gebiet eines elastischen Bandes, das um diese Punkte gelegt
und dann zusammengezogen wird.
Der Rand (das Band selbst) um die konvexe Hülle herum entspricht dem kleinsten konvexen Polygon,
das sämtliche Punkte in der Ebene umfasst.

0.3 Durchschnitt konvexer Mengen

Sei der Durchschnitt konvexer Mengen $ M_i $   mit$ \; i=1,..,m $ wie folgt definiert:
$ H(M) := \overset{n \in N }{\underset{i=1,..,n}{\bigcap}} M_i$   , mit$ \; M_i$    konvex und$ \; M \subseteq M_i $

0.4 Bemerkung

Die meisten geometrischen Objekte umfassen unendliche viele Punkte.
Somit existieren unendlich viele Mengen $ M_i $ mit der Eigenschaft $ M \subseteq M_i $.
Deswegen ist die Definition in (0.3) für algorithmische Untersuchungen, die nach endlicher Zeit ein Ergebnis liefern sollen, unbrauchbar.
Das motiviert den folgenden Abschnitt 1.0

1.0 Prüfen auf Konvexität

1.1. Polygone

a) Ein Polygon ist durch einen geschlossenen Streckenzug definiert.
b) In der Regel schneidet sich dabei der Streckenrand nicht selbst.
c) Orientieren wir den Streckenzug gegen den Uhrzeigersinn, so bezeichnen wir den Inhalt links vom Rand als Fläche.

Wir betrachten zuerst Problemstellungen im Vektrorraum $ R^2 $, d.h. in der ebenen Geometrie:

Ein Polygon $ P $ heißt konvex, wenn seine sämtlichen Diagonalen im Inneren verlaufen.

Bei Polygonen können wir uns beim Inklusionstest (siehe 1.2) anstelle beliebiger Punktepaare
und zugehöriger Verbindungsstrecken auf die Diagonalen beschränken:

Anstatt alle Diagonalpunkte, ob sie innere Punkte sind (dafür gibt es keinen effizienten Algorithmus) fordern wir:
i) mindestens ein Punkt jeder Diagonale (z.B. der Mittelpunkt) liegt im Inneren von $ P $
ii) alle Diagonalschnittpunkte mit den Poygonkanten ergeben lediglich Polygonpunkte

1.2 Inklusionsabfragen in Polygonen

"Geometrisches Suchenöder "Lokalisierung von Punkten".

Sei eine Partition des Raumes in mehrere Unterräume $ R_1, R_2, \dotsc , R_n $ für eine beliebige Punktmenge $ X_1, X_2, \dotsc ,X_k $ gegeben.
Ziel ist die Berechnung, welcher Punkt in welchem Unterraum liegt.

1.2.1 Punkt-im-Polygon-Test

Im zweidim. Raum lautet die Inklusionsfrage: Ëntscheide, ob ein beliebiger Punkt X innerhalb, außerhalb oder auf dem Rand liegt".
Es wird sich zeigen, dass Zeit- und Speicherkomplexität davon abhängt, ob das Polygon $ P $ konvex und ob Vorarbeit für das Polygon erlaubt ist oder nicht.

1.2.2 Jordansche Theorem

Seien beliebige Polygone $ P_1, P_2, \dotsc , P_n $ (bzw. geschlossene Kurven) gegeben, dann sagt das Jordansche Theorem,
das jedes Polygon $ P_i $ die Ebene in zwei disjunkte Regionen «Inneres» und «Äußeres» teilt.
Ist die Anzahl der echten Schnittpunkte eines beliebigen im Punkt $ X_k $ startetenden Teststrahls mit den Grenzstrecken ungerade,
so liegt $ X_k $ innerhalb von $ P_i $ (; andernfalls ist $ X_k $ ein äußerer Punkt).

Bermerkung
Probleme ergeben sich, wenn Eckpunte von Polygonkanten direkt auf dem Teststrahl liegen.
Als Teststrahl wählen wir einen Strahl parallel zur x-Achse.
Ein Schnittpunkt des Teststrahls wird gezählt, falls sich der tieferliegende Eckpunkt (kleinerer y-Wert)
der jeweiligen Polygonkante unterhalb des Teststrahls befindet.
$ \Longrightarrow \quad $ Vollständig auf dem Teststrahl liegende Polygonkanten werden nicht gezählt.

Zum Algorithmus

%----------------------------
% Punkt-in-Polygon-Test nach Jordan
%
% INPUT: P = P1, ..., Pn
% X
% % OUTPUT: Die Lage von X, es gibt 3 Möglichkeiten:
% X liegt innerhalb / auf / ausserhalb von P
%
%----------------------------

 
 
zurück Informatik  hoch