partition_dynamicpartition_dynamicPartitionDynamicPartitionDynamic (Operator)

Name

partition_dynamicpartition_dynamicPartitionDynamicPartitionDynamic — Horizontales Teilen einer Region an Stellen mit geringer vertikaler Ausdehnung.

Signatur

partition_dynamic(Region : Partitioned : Distance, Percent : )

Herror partition_dynamic(const Hobject Region, Hobject* Partitioned, double Distance, double Percent)

Herror T_partition_dynamic(const Hobject Region, Hobject* Partitioned, const Htuple Distance, const Htuple Percent)

void PartitionDynamic(const HObject& Region, HObject* Partitioned, const HTuple& Distance, const HTuple& Percent)

HRegion HRegion::PartitionDynamic(double Distance, double Percent) const

static void HOperatorSet.PartitionDynamic(HObject region, out HObject partitioned, HTuple distance, HTuple percent)

HRegion HRegion.PartitionDynamic(double distance, double percent)

Beschreibung

partition_dynamicpartition_dynamicPartitionDynamicPartitionDynamicPartitionDynamic zerlegt die Eingaberegion RegionRegionRegionRegionregion horizontal in Teilregionen, die etwa die Breite DistanceDistanceDistanceDistancedistance haben. Die Eingaberegion wird dabei an Stellen aufgeschnitten, die eine relativ kleine vertikale Ausdehnung haben.

Die Positionen, an denen die Eingaberegion aufgeschnitten wird werden auf folgende Weise bestimmt: Zuerst werden vorläufige Positionen bestimmt, die gleichabständig über die gesamte Breite der Eingaberegion verteilt sind, d.h., alle resultierenden Teilregionen wären gleich breit. Hierfür wird die Anzahl n der resultierenden Teilregionen bestimmt, indem die Breite der Eingaberegion durch DistanceDistanceDistanceDistancedistance geteilt und das Ergebnis auf die nächste Ganzzahl gerundet wird. Der Abstand zwischen den vorläufigen Positionen ist das Ergebnis der Division der Breite der Eingaberegion durch n. Beachten Sie, dass der Abstand zwischen den vorläufigen Positionen typischerweise nicht mit DistanceDistanceDistanceDistancedistance identisch ist. Die endgültigen Positionen, an denen die Eingaberegion aufgeschnitten wird werden nun in der Umgebung der vorläufigen Positionen so bestimmt, dass die Eingaberegion an Stellen aufgeschnitten wird, an der sie die geringste vertikale Ausdehnung innerhalb dieser Umgebung hat. Die maximale Verschiebung der endgültigen Position gegenüber der vorläufigen Position ist DistanceDistanceDistanceDistancedistance*PercentPercentPercentPercentpercent*0.01.

Die resultierenden Teilregionen werden in PartitionedPartitionedPartitionedPartitionedpartitioned zurückgegeben. Beachten Sie, dass die Eingaberegion nur dann geteilt wird, wenn ihre Breite größer als 1.5 mal DistanceDistanceDistanceDistancedistance ist.

Ausführungsinformationen

Parameter

RegionRegionRegionRegionregion (input_object)  region(-array) objectHRegionHRegionHobject

Region die zerlegt werden soll.

PartitionedPartitionedPartitionedPartitionedpartitioned (output_object)  region-array objectHRegionHRegionHobject *

Zerlegte Region.

DistanceDistanceDistanceDistancedistance (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Genäherte Breite der resultierenden Teilregionen.

PercentPercentPercentPercentpercent (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Maximale prozentuale Verschiebung der Positionen an denen die Eingaberegion geteilt wird.

Defaultwert: 20

Wertevorschläge: 0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 70.0, 90.0, 100.0

Typischer Wertebereich: 0 ≤ Percent Percent Percent Percent percent ≤ 100

Ergebnis

partition_dynamicpartition_dynamicPartitionDynamicPartitionDynamicPartitionDynamic liefert normalerweise den Wert 2 (H_MSG_TRUE). Das Verhalten bei leerer Eingabe (keine Eingabebilder vorhanden) lässt sich mittels set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>), das bei leerer Region mit set_system('empty_region_result',<Result>)set_system("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>), das bei leerer Ergebnisregion mit set_system('store_empty_region',<'true'/'false'>)set_system("store_empty_region",<"true"/"false">)SetSystem("store_empty_region",<"true"/"false">)SetSystem("store_empty_region",<"true"/"false">)SetSystem("store_empty_region",<"true"/"false">) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

thresholdthresholdThresholdThresholdThreshold, connectionconnectionConnectionConnectionConnection

Alternativen

partition_rectanglepartition_rectanglePartitionRectanglePartitionRectanglePartitionRectangle

Siehe auch

intersectionintersectionIntersectionIntersectionIntersection, smallest_rectangle1smallest_rectangle1SmallestRectangle1SmallestRectangle1SmallestRectangle1, shape_transshape_transShapeTransShapeTransShapeTrans, clip_regionclip_regionClipRegionClipRegionClipRegion

Modul

Foundation