gen_parallels_xldgen_parallels_xldGenParallelsXldGenParallelsXld (Operator)

Name

gen_parallels_xldgen_parallels_xldGenParallelsXldGenParallelsXld — Suchen nach parallelen XLD-Polygonen.

Signatur

gen_parallels_xld(Polygons : Parallels : Len, Dist, Alpha, Merge : )

Herror gen_parallels_xld(const Hobject Polygons, Hobject* Parallels, double Len, double Dist, double Alpha, const char* Merge)

Herror T_gen_parallels_xld(const Hobject Polygons, Hobject* Parallels, const Htuple Len, const Htuple Dist, const Htuple Alpha, const Htuple Merge)

void GenParallelsXld(const HObject& Polygons, HObject* Parallels, const HTuple& Len, const HTuple& Dist, const HTuple& Alpha, const HTuple& Merge)

HXLDPara HXLDPoly::GenParallelsXld(const HTuple& Len, const HTuple& Dist, const HTuple& Alpha, const HString& Merge) const

HXLDPara HXLDPoly::GenParallelsXld(double Len, double Dist, double Alpha, const HString& Merge) const

HXLDPara HXLDPoly::GenParallelsXld(double Len, double Dist, double Alpha, const char* Merge) const

HXLDPara HXLDPoly::GenParallelsXld(double Len, double Dist, double Alpha, const wchar_t* Merge) const   (Nur Windows)

static void HOperatorSet.GenParallelsXld(HObject polygons, out HObject parallels, HTuple len, HTuple dist, HTuple alpha, HTuple merge)

HXLDPara HXLDPoly.GenParallelsXld(HTuple len, HTuple dist, HTuple alpha, string merge)

HXLDPara HXLDPoly.GenParallelsXld(double len, double dist, double alpha, string merge)

Beschreibung

Mit gen_parallels_xldgen_parallels_xldGenParallelsXldGenParallelsXldGenParallelsXld 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_xldModParallelsXldModParallelsXldModParallelsXld. Dieser ergibt sich aus der normierten Winkeldifferenz und der normierten Überlappungsstrecke: 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_xldInfoParallelsXldInfoParallelsXldInfoParallelsXld abgerufen werden.

Ausführungsinformationen

Parameter

PolygonsPolygonsPolygonsPolygonspolygons (input_object)  xld_poly-array objectHXLDPolyHXLDPolyHobject

Eingabepolygone.

ParallelsParallelsParallelsParallelsparallels (output_object)  xld_para-array objectHXLDParaHXLDParaHobject *

Parallelenrelationen.

LenLenLenLenlen (input_control)  number HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Mindestlänge der einzelnen Polygonlinien.

Defaultwert: 10.0

Wertevorschläge: 5.0, 10.0, 15.0, 20.0

Restriktion: Len > 0.0

DistDistDistDistdist (input_control)  number HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Maximalabstand der einzelnen Polygonlinien.

Defaultwert: 30.0

Wertevorschläge: 20.0, 25.0, 30.0, 40.0, 50.0, 75.0

Restriktion: Dist > 0.0

AlphaAlphaAlphaAlphaalpha (input_control)  number HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Maximale Winkeltoleranz der einzelnen Polygonlinien.

Defaultwert: 0.15

Wertevorschläge: 0.05, 0.10, 0.15, 0.20, 0.30

Restriktion: 0 <= Alpha && Alpha <= pi / 2

MergeMergeMergeMergemerge (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Sollen nebeneinanderliegende Parallelenrelationen zusammengefügt werden?

Defaultwert: 'true' "true" "true" "true" "true"

Werteliste: 'false'"false""false""false""false", 'true'"true""true""true""true"

Vorgänger

gen_polygons_xldgen_polygons_xldGenPolygonsXldGenPolygonsXldGenPolygonsXld

Nachfolger

mod_parallels_xldmod_parallels_xldModParallelsXldModParallelsXldModParallelsXld, get_parallels_xldget_parallels_xldGetParallelsXldGetParallelsXldGetParallelsXld, info_parallels_xldinfo_parallels_xldInfoParallelsXldInfoParallelsXldInfoParallelsXld

Modul

Foundation