smallest_rectangle1_xldsmallest_rectangle1_xldSmallestRectangle1XldSmallestRectangle1Xld (Operator)
Name
smallest_rectangle1_xldsmallest_rectangle1_xldSmallestRectangle1XldSmallestRectangle1Xld
— Umschließendes Rechteck parallel zu den Koordinatenachsen von Konturen oder
Polygonen.
Signatur
void SmallestRectangle1Xld(const HObject& XLD, HTuple* Row1, HTuple* Column1, HTuple* Row2, HTuple* Column2)
void HXLD::SmallestRectangle1Xld(HTuple* Row1, HTuple* Column1, HTuple* Row2, HTuple* Column2) const
void HXLD::SmallestRectangle1Xld(double* Row1, double* Column1, double* Row2, double* Column2) const
static void HOperatorSet.SmallestRectangle1Xld(HObject XLD, out HTuple row1, out HTuple column1, out HTuple row2, out HTuple column2)
void HXLD.SmallestRectangle1Xld(out HTuple row1, out HTuple column1, out HTuple row2, out HTuple column2)
void HXLD.SmallestRectangle1Xld(out double row1, out double column1, out double row2, out double column2)
Beschreibung
smallest_rectangle1_xldsmallest_rectangle1_xldSmallestRectangle1XldSmallestRectangle1XldSmallestRectangle1Xld
berechnet das umschließende Rechteck
(parallel zu den Koordinatenachsen)
für jede Eingabekontur bzw. jedes Eingabepolygon.
Das umschließende Rechteck wird durch die Koordinaten der Eckpunkte
(Row1Row1Row1Row1row1
,Column1Column1Column1Column1column1
,Row2Row2Row2Row2row2
,Column2Column2Column2Column2column2
)
beschrieben.
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, soweit kein anderes Verhalten eingestellt wurde
(siehe set_systemset_systemSetSystemSetSystemSetSystem
).
Achtung
Bei leeren Konturen 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 oder Polygone.
Row1Row1Row1Row1row1
(output_control) rectangle.origin.y(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Zeilenkoordinate des linken oberen Eckpunkts des
umschließenden Rechtecks.
Column1Column1Column1Column1column1
(output_control) rectangle.origin.x(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Spaltenkoordinate des linken oberen Eckpunkts des
umschließenden Rechtecks.
Row2Row2Row2Row2row2
(output_control) rectangle.corner.y(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Zeilenkoordinate des rechten unteren Eckpunkts des
umschließenden Rechtecks.
Column2Column2Column2Column2column2
(output_control) rectangle.corner.x(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Spaltenkoordinate des rechten unteren Eckpunkts des
umschließenden Rechtecks.
Komplexität
Sei N die Anzahl der Punkte in der Kontur, dann beträgt die
Laufzeitkomplexität O(N).
Ergebnis
smallest_rectangle1_xldsmallest_rectangle1_xldSmallestRectangle1XldSmallestRectangle1XldSmallestRectangle1Xld
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
height_width_ratio_xldheight_width_ratio_xldHeightWidthRatioXldHeightWidthRatioXldHeightWidthRatioXld
,
smallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2XldSmallestRectangle2Xld
,
shape_trans_xldshape_trans_xldShapeTransXldShapeTransXldShapeTransXld
Siehe auch
shape_trans_xldshape_trans_xldShapeTransXldShapeTransXldShapeTransXld
,
smallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2XldSmallestRectangle2Xld
,
smallest_circle_xldsmallest_circle_xldSmallestCircleXldSmallestCircleXldSmallestCircleXld
,
elliptic_axis_xldelliptic_axis_xldEllipticAxisXldEllipticAxisXldEllipticAxisXld
,
area_center_xldarea_center_xldAreaCenterXldAreaCenterXldAreaCenterXld
Modul
Foundation