smallest_circle_xldsmallest_circle_xldSmallestCircleXldSmallestCircleXldsmallest_circle_xld (Operator)
Name
smallest_circle_xldsmallest_circle_xldSmallestCircleXldSmallestCircleXldsmallest_circle_xld — Kleinster umschließender Kreis von Konturen oder Polygonen.
Signatur
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)
def smallest_circle_xld(xld: HObject) -> Tuple[Sequence[float], Sequence[float], Sequence[float]]
def smallest_circle_xld_s(xld: HObject) -> Tuple[float, float, float]
Beschreibung
smallest_circle_xldsmallest_circle_xldSmallestCircleXldSmallestCircleXldSmallestCircleXldsmallest_circle_xld 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_systemSetSystemSetSystemSetSystemset_system).
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 oder Polygone.
RowRowRowRowrowrow (output_control) circle.center.y(-array) → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Zeilenkoordinate des Mittelpunktes des
umschließenden Kreises.
ColumnColumnColumnColumncolumncolumn (output_control) circle.center.x(-array) → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Spaltenkoordinate des Mittelpunktes des
umschließenden Kreises.
RadiusRadiusRadiusRadiusradiusradius (output_control) circle.radius(-array) → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Radius des umschließenden Kreises.
Zusicherung: Radius >= 0
Komplexität
Seien N die Anzahl der Punkte in der Kontur dann beträgt die
Laufzeitkomplexität O(N*ln(N)).
Ergebnis
smallest_circle_xldsmallest_circle_xldSmallestCircleXldSmallestCircleXldSmallestCircleXldsmallest_circle_xld 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>)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
Nachfolger
gen_ellipse_contour_xldgen_ellipse_contour_xldGenEllipseContourXldGenEllipseContourXldGenEllipseContourXldgen_ellipse_contour_xld
Alternativen
smallest_rectangle1_xldsmallest_rectangle1_xldSmallestRectangle1XldSmallestRectangle1XldSmallestRectangle1Xldsmallest_rectangle1_xld,
smallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2XldSmallestRectangle2Xldsmallest_rectangle2_xld
Siehe auch
elliptic_axis_xldelliptic_axis_xldEllipticAxisXldEllipticAxisXldEllipticAxisXldelliptic_axis_xld,
smallest_rectangle1_xldsmallest_rectangle1_xldSmallestRectangle1XldSmallestRectangle1XldSmallestRectangle1Xldsmallest_rectangle1_xld,
smallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2XldSmallestRectangle2Xldsmallest_rectangle2_xld,
shape_trans_xldshape_trans_xldShapeTransXldShapeTransXldShapeTransXldshape_trans_xld
Modul
Foundation