Mit gen_parallels_xldgen_parallels_xldGenParallelsXldGenParallelsXldGenParallelsXldgen_parallels_xld werden die in PolygonsPolygonsPolygonsPolygonspolygonspolygons
übergebenen Polygone auf Parallelität hin untersucht. Die
resultierenden parallelen Teilstücke der Polygone werden unter
ParallelsParallelsParallelsParallelsparallelsparallels ausgegeben. Falls der Parameter MergeMergeMergeMergemergemerge
auf 'true'"true""true""true""true""true" gesetzt wird, werden nebeneinanderliegende
parallele Teilstücke in einer einzigen Relation gespeichert.
Ansonsten wird für jedes Paar von parallelen Liniensegmenten eine
separate Parallelenrelation ausgegeben.
Es werden nur Polygonsegmente mit einer Länge von mindestens LenLenLenLenlenlen
berücksichtigt.
Ob zwei Polygonsegmente als parallel angesehen werden, hängt vor allem von
der maximalen Winkeltoleranz AlphaAlphaAlphaAlphaalphaalpha (Bogenmaß) ab.
Ferner müssen sich die Projektionen der beiden Segmente auf ihre
Winkelhalbierende überlappen.
Der Überlappungsbereich auf der Winkelhalbierenden wird zurück auf die
Segmente projiziert. Ist der maximale Abstand der Rückprojektionen kleiner
als DistDistDistDistdistdist, werden die Segmente in ParallelsParallelsParallelsParallelsparallelsparallels gespeichert.
Als Nebeneffekt wird zu jedem parallelen Linienpaar
ein sog. Qualitätsfaktor berechnet, siehe mod_parallels_xldmod_parallels_xldModParallelsXldModParallelsXldModParallelsXldmod_parallels_xld.
Dieser ergibt sich aus der
normierten Winkeldifferenz und der normierten Länger der Überlappung:
Dabei ist die Winkeldifferenz der
Polygonsegmente, der Überlappungsbereich,
und die Länge der
Polygonsegmente und der errechnete Qualitätsfaktor.
Dieser Wert stellt ein Maß für die Parallelität dar (je größer
dieser Wert, desto „paralleler“ die Linien). Anschließend werden
die Qualitäts-Faktoren aller parallelen Linien in gemeinsamen
Polygonen, gewichtet nach ihrem Anteil an der gemeinsamen
Überlappung, aufsummiert. Die Spanne für den errechneten
Qualitätsfaktor kann mit info_parallels_xldinfo_parallels_xldInfoParallelsXldInfoParallelsXldInfoParallelsXldinfo_parallels_xld abgerufen werden.
Ausführungsinformationen
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).