polygonDifference()

Zusammenfassung

Gibt einen list Polygone, die die Bereiche von poly1 darstellen, 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 points definieren die "Ebene" des Polygons. Auch wenn die restlichen points 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())}}