partition_dynamicpartition_dynamicPartitionDynamicPartitionDynamicpartition_dynamic (Operator)

Name

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

def partition_dynamic(region: HObject, distance: float, percent: float) -> HObject

Beschreibung

partition_dynamicpartition_dynamicPartitionDynamicPartitionDynamicPartitionDynamicpartition_dynamic zerlegt die Eingaberegion RegionRegionRegionRegionregionregion horizontal in Teilregionen, die etwa die Breite DistanceDistanceDistanceDistancedistancedistance 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 DistanceDistanceDistanceDistancedistancedistance 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 DistanceDistanceDistanceDistancedistancedistance 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 DistanceDistanceDistanceDistancedistancedistance*PercentPercentPercentPercentpercentpercent*0.01.

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

Ausführungsinformationen

Parameter

RegionRegionRegionRegionregionregion (input_object)  region(-array) objectHRegionHObjectHRegionHobject

Region die zerlegt werden soll.

PartitionedPartitionedPartitionedPartitionedpartitionedpartitioned (output_object)  region-array objectHRegionHObjectHRegionHobject *

Zerlegte Region.

DistanceDistanceDistanceDistancedistancedistance (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Genäherte Breite der resultierenden Teilregionen.

PercentPercentPercentPercentpercentpercent (input_control)  real HTuplefloatHTupleHtuple (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 percent ≤ 100

Ergebnis

partition_dynamicpartition_dynamicPartitionDynamicPartitionDynamicPartitionDynamicpartition_dynamic liefert normalerweise den Wert 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>)set_system("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>)set_system("empty_region_result",<Result>), das bei leerer Ergebnisregion mit set_system('store_empty_region',<'2 (H_MSG_TRUE)'/'3 (H_MSG_FALSE)'>)set_system("store_empty_region",<"2 (H_MSG_TRUE)"/"3 (H_MSG_FALSE)">)SetSystem("store_empty_region",<"2 (H_MSG_TRUE)"/"3 (H_MSG_FALSE)">)SetSystem("store_empty_region",<"2 (H_MSG_TRUE)"/"3 (H_MSG_FALSE)">)SetSystem("store_empty_region",<"2 (H_MSG_TRUE)"/"3 (H_MSG_FALSE)">)set_system("store_empty_region",<"2 (H_MSG_TRUE)"/"3 (H_MSG_FALSE)">) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

thresholdthresholdThresholdThresholdThresholdthreshold, connectionconnectionConnectionConnectionConnectionconnection

Alternativen

partition_rectanglepartition_rectanglePartitionRectanglePartitionRectanglePartitionRectanglepartition_rectangle

Siehe auch

intersectionintersectionIntersectionIntersectionIntersectionintersection, smallest_rectangle1smallest_rectangle1SmallestRectangle1SmallestRectangle1SmallestRectangle1smallest_rectangle1, shape_transshape_transShapeTransShapeTransShapeTransshape_trans, clip_regionclip_regionClipRegionClipRegionClipRegionclip_region

Modul

Foundation