smallest_circle_xldsmallest_circle_xldSmallestCircleXldSmallestCircleXld (Operator)
Name
smallest_circle_xldsmallest_circle_xldSmallestCircleXldSmallestCircleXld
— 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)
Beschreibung
smallest_circle_xldsmallest_circle_xldSmallestCircleXldSmallestCircleXldSmallestCircleXld
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 (RowRowRowRowrow
,ColumnColumnColumnColumncolumn
) und der Radius (RadiusRadiusRadiusRadiusradius
)
berechnet.
Werden mehrere Konturen oder Polygone in XLDXLDXLDXLDXLD
ü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_systemSetSystemSetSystemSetSystem
).
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 oder Polygone.
RowRowRowRowrow
(output_control) circle.center.y(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Zeilenkoordinate des Mittelpunktes des
umschließenden Kreises.
ColumnColumnColumnColumncolumn
(output_control) circle.center.x(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Spaltenkoordinate des Mittelpunktes des
umschließenden Kreises.
RadiusRadiusRadiusRadiusradius
(output_control) circle.radius(-array) →
HTupleHTupleHtuple (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_xldSmallestCircleXldSmallestCircleXldSmallestCircleXld
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>)
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
Nachfolger
gen_ellipse_contour_xldgen_ellipse_contour_xldGenEllipseContourXldGenEllipseContourXldGenEllipseContourXld
Alternativen
smallest_rectangle1_xldsmallest_rectangle1_xldSmallestRectangle1XldSmallestRectangle1XldSmallestRectangle1Xld
,
smallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2XldSmallestRectangle2Xld
Siehe auch
elliptic_axis_xldelliptic_axis_xldEllipticAxisXldEllipticAxisXldEllipticAxisXld
,
smallest_rectangle1_xldsmallest_rectangle1_xldSmallestRectangle1XldSmallestRectangle1XldSmallestRectangle1Xld
,
smallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2XldSmallestRectangle2Xld
,
shape_trans_xldshape_trans_xldShapeTransXldShapeTransXldShapeTransXld
Modul
Foundation