Mit gen_parallels_xldgen_parallels_xldGenParallelsXldGenParallelsXldgen_parallels_xld werden die in PolygonsPolygonsPolygonspolygonspolygons
übergebenen Polygone auf Parallelität hin untersucht. Die
resultierenden parallelen Teilstücke der Polygone werden unter
ParallelsParallelsParallelsparallelsparallels ausgegeben. Falls der Parameter MergeMergeMergemergemerge
auf '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 LenLenLenlenlen
berücksichtigt.
Ob zwei Polygonsegmente als parallel angesehen werden, hängt vor allem von
der maximalen Winkeltoleranz AlphaAlphaAlphaalphaalpha (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 DistDistDistdistdist, werden die Segmente in ParallelsParallelsParallelsparallelsparallels gespeichert.
Als Nebeneffekt wird zu jedem parallelen Linienpaar
ein sog. Qualitätsfaktor berechnet, siehe mod_parallels_xldmod_parallels_xldModParallelsXldModParallelsXldmod_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_xldInfoParallelsXldInfoParallelsXldinfo_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).