polygonDifference()

Zusammenfassung

Gibt eine Liste von Polygonen zurück, die die Bereiche von poly1 darstellen, die verbleiben, wenn die Fläche poly2 entfernt 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

polygonDifference ( poly1 As List, _
                    poly2 As List ) As List 
Argument Typ Beschreibung
poly1 List Das ursprüngliche Polygon
poly2 List Das Polygon, das entfernt werden soll

Beispiel 1

Intent >polygonDifference({point(0,0,0), Point(5,0,0), Point(5,5,0), Point(0,5,0)}, {Point(1,1,0), Point(6,1,0), Point(6,4,0), Point(1,4,0)}) 
--> {{Point_(1.0, 1.0, 0.0, WorldFrame()), Point_(1.0, 4.0, 0.0, WorldFrame()), Point_(5.0, 4.0, 0.0, WorldFrame()), Point_(5.0, 5.0, 0.0, WorldFrame()), Point_(0.0, 5.0, 0.0, WorldFrame()), Point_(0.0, 0.0, 0.0, WorldFrame()), Point_(5.0, 0.0, 0.0, WorldFrame()), Point_(5.0, 1.0, 0.0, WorldFrame())}} 

Beispiel 2

Die gleichen Polygone wie im Beispiel 1, jedoch in umgekehrter Reihenfolge:
Intent >polygonDifference({Point(1,1,0), Point(6,1,0), Point(6,4,0), Point(1,4,0)}, {point(0,0,0), Point(5,0,0), Point(5,5,0), Point(0,5,0)}) 
--> {{Point_(6.0, 1.0, 0.0, WorldFrame()), Point_(6.0, 4.0, 0.0, WorldFrame()), Point_(5.0, 4.0, 0.0, WorldFrame()), Point_(5.0, 1.0, 0.0, WorldFrame())}}