gen_parallels_xldgen_parallels_xldGenParallelsXldGenParallelsXldgen_parallels_xld (Operator)

Name

gen_parallels_xldgen_parallels_xldGenParallelsXldGenParallelsXldgen_parallels_xld — 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)

def gen_parallels_xld(polygons: HObject, len: Union[float, int], dist: Union[float, int], alpha: Union[float, int], merge: str) -> HObject

Beschreibung

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

Parameter

PolygonsPolygonsPolygonsPolygonspolygonspolygons (input_object)  xld_poly-array objectHXLDPolyHObjectHXLDPolyHobject

Eingabepolygone.

ParallelsParallelsParallelsParallelsparallelsparallels (output_object)  xld_para-array objectHXLDParaHObjectHXLDParaHobject *

Parallelenrelationen.

LenLenLenLenlenlen (input_control)  number HTupleUnion[float, int]HTupleHtuple (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

DistDistDistDistdistdist (input_control)  number HTupleUnion[float, int]HTupleHtuple (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

AlphaAlphaAlphaAlphaalphaalpha (input_control)  number HTupleUnion[float, int]HTupleHtuple (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

MergeMergeMergeMergemergemerge (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Sollen nebeneinanderliegende Parallelenrelationen zusammengefügt werden?

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

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

Vorgänger

gen_polygons_xldgen_polygons_xldGenPolygonsXldGenPolygonsXldGenPolygonsXldgen_polygons_xld

Nachfolger

mod_parallels_xldmod_parallels_xldModParallelsXldModParallelsXldModParallelsXldmod_parallels_xld, get_parallels_xldget_parallels_xldGetParallelsXldGetParallelsXldGetParallelsXldget_parallels_xld, info_parallels_xldinfo_parallels_xldInfoParallelsXldInfoParallelsXldInfoParallelsXldinfo_parallels_xld

Modul

Foundation