diameter_xlddiameter_xldDiameterXldDiameterXld (Operator)
Name
diameter_xlddiameter_xldDiameterXldDiameterXld
— 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)
Beschreibung
diameter_xlddiameter_xldDiameterXldDiameterXldDiameterXld
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_xldTestSelfIntersectionXldTestSelfIntersectionXldTestSelfIntersectionXld
ü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 XLDXLDXLDXLDXLD
abgespeichert.
Achtung
Bei leerer Kontur bzw. leerem Polygon kann das Ergebnis von Row1Row1Row1Row1row1
,
Column1Column1Column1Column1column1
, Row2Row2Row2Row2row2
und Column2Column2Column2Column2column2
(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
XLDXLDXLDXLDXLD
(input_object) xld(-array) →
objectHXLDHXLDHobject
Zu untersuchende Konturen bzw. Polygone.
Row1Row1Row1Row1row1
(output_control) line.begin.y(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Zeilenkoordinate des ersten Extrempunktes der
Konturen bzw. Polygone.
Column1Column1Column1Column1column1
(output_control) line.begin.x(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Spaltenkoordinate des ersten Extrempunktes der
Konturen bzw. Polygone.
Row2Row2Row2Row2row2
(output_control) line.end.y(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Zeilenkoordinate des zweiten Extrempunktes der
Konturen bzw. Polygone.
Column2Column2Column2Column2column2
(output_control) line.end.x(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Spaltenkoordinate des zweiten Extrempunktes der
Konturen bzw. Polygone.
DiameterDiameterDiameterDiameterdiameter
(output_control) number(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Abstand der beiden Extrempunkte der
Konturen oder Polygone.
Ergebnis
diameter_xlddiameter_xldDiameterXldDiameterXldDiameterXld
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>)
festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
gen_contours_skeleton_xldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXldGenContoursSkeletonXld
,
edges_sub_pixedges_sub_pixEdgesSubPixEdgesSubPixEdgesSubPix
,
threshold_sub_pixthreshold_sub_pixThresholdSubPixThresholdSubPixThresholdSubPix
,
gen_contour_polygon_xldgen_contour_polygon_xldGenContourPolygonXldGenContourPolygonXldGenContourPolygonXld
,
test_self_intersection_xldtest_self_intersection_xldTestSelfIntersectionXldTestSelfIntersectionXldTestSelfIntersectionXld
Alternativen
smallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2XldSmallestRectangle2Xld
Siehe auch
area_center_xldarea_center_xldAreaCenterXldAreaCenterXldAreaCenterXld
Modul
Foundation