KlassenKlassenKlassenKlassen | | | | Operatoren

gen_parallels_xldgen_parallels_xldGenParallelsXldgen_parallels_xldGenParallelsXldGenParallelsXld (Operator)

Name

gen_parallels_xldgen_parallels_xldGenParallelsXldgen_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)

Herror gen_parallels_xld(Hobject Polygons, Hobject* Parallels, const HTuple& Len, const HTuple& Dist, const HTuple& Alpha, const HTuple& Merge)

HXLDParaArray HXLDPolyArray::GenParallelsXld(const HTuple& Len, const HTuple& Dist, const HTuple& Alpha, const HTuple& Merge) const

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

void HOperatorSetX.GenParallelsXld(
[in] IHUntypedObjectX* Polygons, [out] IHUntypedObjectX*Parallels, [in] VARIANT Len, [in] VARIANT Dist, [in] VARIANT Alpha, [in] VARIANT Merge)

IHXLDParaX* HXLDPolyX.GenParallelsXld(
[in] VARIANT Len, [in] VARIANT Dist, [in] VARIANT Alpha, [in] BSTR Merge)

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_xldGenParallelsXldgen_parallels_xldGenParallelsXldGenParallelsXld 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_xldModParallelsXldmod_parallels_xldModParallelsXldModParallelsXld. 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_xldInfoParallelsXldinfo_parallels_xldInfoParallelsXldInfoParallelsXld abgerufen werden.

Parallelisierung

Parameter

PolygonsPolygonsPolygonsPolygonsPolygonspolygons (input_object)  xld_poly-array objectHXLDPolyHXLDPolyHXLDPolyArrayHXLDPolyXHobject

Eingabepolygone.

ParallelsParallelsParallelsParallelsParallelsparallels (output_object)  xld_para-array objectHXLDParaHXLDParaHXLDParaArrayHXLDParaXHobject *

Parallelenrelationen.

LenLenLenLenLenlen (input_control)  number HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (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 HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (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 HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (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 HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (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_xldGenPolygonsXldgen_polygons_xldGenPolygonsXldGenPolygonsXld

Nachfolger

mod_parallels_xldmod_parallels_xldModParallelsXldmod_parallels_xldModParallelsXldModParallelsXld, get_parallels_xldget_parallels_xldGetParallelsXldget_parallels_xldGetParallelsXldGetParallelsXld, info_parallels_xldinfo_parallels_xldInfoParallelsXldinfo_parallels_xldInfoParallelsXldInfoParallelsXld

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren