polygonDifference()

Zusammenfassung

Gibt eine Liste von Polygonen zurück, die die verbleibenden Flächen von poly1 darstellen, 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 Liste Das ursprüngliche Polygon
poly2 Liste 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())}}