Name
smallest_circle_xldsmallest_circle_xldSmallestCircleXldsmallest_circle_xldSmallestCircleXldSmallestCircleXld — Kleinster umschließender Kreis von Konturen oder Polygonen.
Herror smallest_circle_xld(const Hobject XLD, double* Row, double* Column, double* Radius)
Herror T_smallest_circle_xld(const Hobject XLD, Htuple* Row, Htuple* Column, Htuple* Radius)
smallest_circle_xldsmallest_circle_xldSmallestCircleXldsmallest_circle_xldSmallestCircleXldSmallestCircleXld bestimmt den kleinsten umschließenden Kreis
von Konturen oder Polygonen, also den Kreis mit dem kleinsten Flächeninhalt
unter allen Kreisen, die die Kontur enthalten. Für diesen Kreis werden der
Mittelpunkt (RowRowRowRowRowrow,ColumnColumnColumnColumnColumncolumn) und der Radius (RadiusRadiusRadiusRadiusRadiusradius)
berechnet.
Werden mehrere Konturen oder Polygone in XLDXLDXLDXLDXLDXLD übergeben, so werden
entsprechende Tupel als Ausgabeparameter zurückgegeben.
Bei leerer Kontur haben alle Parameter den Wert 0.0, soweit kein
anderes Verhalten eingestellt wurde (siehe set_systemset_systemSetSystemset_systemSetSystemSetSystem).
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf Tupelebene.
Zu untersuchende Konturen oder Polygone.
Zeilenkoordinate des Mittelpunktes des
umschließenden Kreises.
Spaltenkoordinate des Mittelpunktes des
umschließenden Kreises.
Radius des umschließenden Kreises.
Zusicherung: Radius >= 0
Seien N die Anzahl der Punkte in der Kontur dann beträgt die
Laufzeitkomplexität O(N*ln(N)).
smallest_circle_xldsmallest_circle_xldSmallestCircleXldsmallest_circle_xldSmallestCircleXldSmallestCircleXld liefert den Wert 2 (H_MSG_TRUE), falls die Eingabe
nicht leer ist. Das Verhalten bei leerer Eingabe lässt sich
mittels set_system(::'no_object_result',<Result>:)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)
festlegen. Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
gen_contours_skeleton_xldgen_contours_skeleton_xldGenContoursSkeletonXldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXld,
edges_sub_pixedges_sub_pixEdgesSubPixedges_sub_pixEdgesSubPixEdgesSubPix,
threshold_sub_pixthreshold_sub_pixThresholdSubPixthreshold_sub_pixThresholdSubPixThresholdSubPix,
gen_contour_polygon_xldgen_contour_polygon_xldGenContourPolygonXldgen_contour_polygon_xldGenContourPolygonXldGenContourPolygonXld
gen_ellipse_contour_xldgen_ellipse_contour_xldGenEllipseContourXldgen_ellipse_contour_xldGenEllipseContourXldGenEllipseContourXld
smallest_rectangle1_xldsmallest_rectangle1_xldSmallestRectangle1Xldsmallest_rectangle1_xldSmallestRectangle1XldSmallestRectangle1Xld,
smallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2Xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2Xld
elliptic_axis_xldelliptic_axis_xldEllipticAxisXldelliptic_axis_xldEllipticAxisXldEllipticAxisXld,
smallest_rectangle1_xldsmallest_rectangle1_xldSmallestRectangle1Xldsmallest_rectangle1_xldSmallestRectangle1XldSmallestRectangle1Xld,
smallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2Xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2Xld,
shape_trans_xldshape_trans_xldShapeTransXldshape_trans_xldShapeTransXldShapeTransXld
Foundation