pointInPolygon?()

Zusammenfassung

Gibt True zurück, wenn sich pt innerhalb des Polygons befindet, das durch poly der Punktliste beschrieben wird.

Polygone werden in einer "lightweight"-Methode durch eine Liste von Punkten dargestellt. Die ersten drei nicht kollinearen Punkte definieren die "Ebene" des Polygons. Auch wenn die restlichen Punkte nicht in dieser Ebene liegen, werden sie für alle Berechnungen auf diese Ebene projiziert.

Syntax

pointInPolygon? ( pt As Point, _
                  poly As List ) As Boolean 
Argument Typ Beschreibung
pt Point Der zu testende Punkt.
poly List Die Punktliste, die das Polygon definiert.

Beispiel 1

Intent >pointInPolygon?(point(1,1,0), {Point(0,0,0), Point(2,0,0), Point(1,2,0)}) 
--> True 

Beispiel 2

Intent >pointInPolygon?(point(2,1,0), {Point(0,0,0), Point(2,0,0), Point(1,2,0)}) 
--> False 

Beispiel 3

Punkte, die AUF der polygonalen Umgrenzung liegen, sind mehrdeutig. Sie werden abhängig von den jeweiligen Zahlen mal als außerhalb, mal als innerhalb gemeldet. True bedeutet "innerhalb oder auf", aber "False" bedeutet nicht "nicht auf" der Umgrenzung.
Intent >pointInPolygon?(point(1,0,0), {Point(0,0,0), Point(2,0,0), Point(1,2,0)}) 
--> True