diameter_xlddiameter_xldDiameterXldDiameterXlddiameter_xld (Operator)
Name
diameter_xlddiameter_xldDiameterXldDiameterXlddiameter_xld — Maximaler Abstand zweier Punkte von Konturen oder Polygonen.
Signatur
Herror diameter_xld(const Hobject XLD, double* Row1, double* Column1, double* Row2, double* Column2, double* Diameter)
Herror T_diameter_xld(const Hobject XLD, Htuple* Row1, Htuple* Column1, Htuple* Row2, Htuple* Column2, Htuple* Diameter)
void DiameterXld(const HObject& XLD, HTuple* Row1, HTuple* Column1, HTuple* Row2, HTuple* Column2, HTuple* Diameter)
void HXLD::DiameterXld(HTuple* Row1, HTuple* Column1, HTuple* Row2, HTuple* Column2, HTuple* Diameter) const
void HXLD::DiameterXld(double* Row1, double* Column1, double* Row2, double* Column2, double* Diameter) const
static void HOperatorSet.DiameterXld(HObject XLD, out HTuple row1, out HTuple column1, out HTuple row2, out HTuple column2, out HTuple diameter)
void HXLD.DiameterXld(out HTuple row1, out HTuple column1, out HTuple row2, out HTuple column2, out HTuple diameter)
void HXLD.DiameterXld(out double row1, out double column1, out double row2, out double column2, out double diameter)
def diameter_xld(xld: HObject) -> Tuple[Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float]]
def diameter_xld_s(xld: HObject) -> Tuple[float, float, float, float, float]
Beschreibung
diameter_xlddiameter_xldDiameterXldDiameterXldDiameterXlddiameter_xld berechnet den
maximalen Abstand zweier Punkte für jede Eingabekontur bzw. für jedes
Eingabepolygon.
Es werden die Koordinaten der beiden Extrempunkte und der
Abstand zwischen diesen Punkten zurückgegeben. Es muss darauf geachtet
werden, dass sich die Eingabekontur bzw. das Eingabepolygon nicht selbst
schneidet, da ansonsten die Ausgabeparameter keine aussagekräftigen Werte
enthalten (Ob sich die Eingabekontur bzw. das Eingabepolygon selbst schneidet
oder nicht, lässt sich mit test_self_intersection_xldtest_self_intersection_xldTestSelfIntersectionXldTestSelfIntersectionXldTestSelfIntersectionXldtest_self_intersection_xld überprüfen).
Ist die Eingabekontur bzw. das Eingabepolygon nicht geschlossen, so wird sie
vor der Berechnung automatisch geschlossen.
Wird mehr als eine Kontur oder ein Polygon übergeben, dann werden
die Ergebnisse in Tupeln in der Reihenfolge ihrer entsprechenden Konturen
bzw. Polygone in XLDXLDXLDXLDXLDxld abgespeichert.
Achtung
Bei leerer Kontur bzw. leerem Polygon kann das Ergebnis von Row1Row1Row1Row1row1row_1,
Column1Column1Column1Column1column1column_1, Row2Row2Row2Row2row2row_2 und Column2Column2Column2Column2column2column_2 (alle sind 0) zu
Konfusionen führen.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf Tupelebene.
Parameter
XLDXLDXLDXLDXLDxld (input_object) xld(-array) → objectHXLDHObjectHXLDHobject
Zu untersuchende Konturen bzw. Polygone.
Row1Row1Row1Row1row1row_1 (output_control) line.begin.y(-array) → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Zeilenkoordinate des ersten Extrempunktes der
Konturen bzw. Polygone.
Column1Column1Column1Column1column1column_1 (output_control) line.begin.x(-array) → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Spaltenkoordinate des ersten Extrempunktes der
Konturen bzw. Polygone.
Row2Row2Row2Row2row2row_2 (output_control) line.end.y(-array) → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Zeilenkoordinate des zweiten Extrempunktes der
Konturen bzw. Polygone.
Column2Column2Column2Column2column2column_2 (output_control) line.end.x(-array) → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Spaltenkoordinate des zweiten Extrempunktes der
Konturen bzw. Polygone.
DiameterDiameterDiameterDiameterdiameterdiameter (output_control) number(-array) → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Abstand der beiden Extrempunkte der
Konturen oder Polygone.
Ergebnis
diameter_xlddiameter_xldDiameterXldDiameterXldDiameterXlddiameter_xld liefert den Wert 2 (H_MSG_TRUE), falls die Eingabe
nicht leer ist. Das Verhalten bei leerer Eingabe (keine Eingabekontur
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>) festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
gen_contours_skeleton_xldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXldGenContoursSkeletonXldgen_contours_skeleton_xld,
edges_sub_pixedges_sub_pixEdgesSubPixEdgesSubPixEdgesSubPixedges_sub_pix,
threshold_sub_pixthreshold_sub_pixThresholdSubPixThresholdSubPixThresholdSubPixthreshold_sub_pix,
gen_contour_polygon_xldgen_contour_polygon_xldGenContourPolygonXldGenContourPolygonXldGenContourPolygonXldgen_contour_polygon_xld,
test_self_intersection_xldtest_self_intersection_xldTestSelfIntersectionXldTestSelfIntersectionXldTestSelfIntersectionXldtest_self_intersection_xld
Alternativen
smallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2XldSmallestRectangle2Xldsmallest_rectangle2_xld
Siehe auch
area_center_xldarea_center_xldAreaCenterXldAreaCenterXldAreaCenterXldarea_center_xld
Modul
Foundation