smallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2Xld (Operator)
Name
smallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2Xld
— Kleinstes umschließendes Rechteck mit beliebiger Orientierung von Konturen
oder Polygonen.
Signatur
Herror smallest_rectangle2_xld(const Hobject XLD, double* Row, double* Column, double* Phi, double* Length1, double* Length2)
Herror T_smallest_rectangle2_xld(const Hobject XLD, Htuple* Row, Htuple* Column, Htuple* Phi, Htuple* Length1, Htuple* Length2)
void SmallestRectangle2Xld(const HObject& XLD, HTuple* Row, HTuple* Column, HTuple* Phi, HTuple* Length1, HTuple* Length2)
void HXLD::SmallestRectangle2Xld(HTuple* Row, HTuple* Column, HTuple* Phi, HTuple* Length1, HTuple* Length2) const
void HXLD::SmallestRectangle2Xld(double* Row, double* Column, double* Phi, double* Length1, double* Length2) const
static void HOperatorSet.SmallestRectangle2Xld(HObject XLD, out HTuple row, out HTuple column, out HTuple phi, out HTuple length1, out HTuple length2)
void HXLD.SmallestRectangle2Xld(out HTuple row, out HTuple column, out HTuple phi, out HTuple length1, out HTuple length2)
void HXLD.SmallestRectangle2Xld(out double row, out double column, out double phi, out double length1, out double length2)
Beschreibung
smallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2XldSmallestRectangle2Xld
bestimmt das kleinste umschließende Rechteck
für jede Eingabekontur bzw. jedes Eingabepolygon, also das Rechteck mit dem
kleinsten Flächeninhalt unter allen Rechtecken, die die Kontur enthalten.
Für dieses Rechteck werden der Mittelpunkt, der Neigungswinkel und die
beiden Halbmesser berechnet.
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.
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) rectangle2.center.y(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Zeilenkoordinate des Mittelpunktes des
umschließenden Rechtecks.
ColumnColumnColumnColumncolumn
(output_control) rectangle2.center.x(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Spaltenkoordinate des Mittelpunktes des
umschließenden Rechtecks.
PhiPhiPhiPhiphi
(output_control) rectangle2.angle.rad(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Orientierung des umschließenden Rechtecks
(Bogenmaß)
Zusicherung: - pi / 2 < Phi && Phi <= pi / 2
Length1Length1Length1Length1length1
(output_control) rectangle2.hwidth(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Erster Halbmesser (halbe Länge) des
umschließenden Rechtecks.
Zusicherung: Length1 >= 0.0
Length2Length2Length2Length2length2
(output_control) rectangle2.hheight(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Zweiter Halbmesser (halbe Breite) des
umschließenden Rechtecks.
Zusicherung: Length2 >= 0.0 && Length2 <= Length1
Komplexität
Seien N die Anzahl der Punkte in der Kontur und C die Anzahl der
Punkte der entsprechenden konvexen Hülle, dann beträgt die
Laufzeitkomplexität O(N*ln(N)+C^2).
Ergebnis
smallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2XldSmallestRectangle2Xld
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_polygons_xldgen_polygons_xldGenPolygonsXldGenPolygonsXldGenPolygonsXld
Alternativen
smallest_rectangle1smallest_rectangle1SmallestRectangle1SmallestRectangle1SmallestRectangle1
,
shape_trans_xldshape_trans_xldShapeTransXldShapeTransXldShapeTransXld
Siehe auch
smallest_rectangle1smallest_rectangle1SmallestRectangle1SmallestRectangle1SmallestRectangle1
,
smallest_circlesmallest_circleSmallestCircleSmallestCircleSmallestCircle
,
elliptic_axis_xldelliptic_axis_xldEllipticAxisXldEllipticAxisXldEllipticAxisXld
Modul
Foundation