moments_xldmoments_xldMomentsXldMomentsXld (Operator)

Name

moments_xldmoments_xldMomentsXldMomentsXld — Geometrische Momente , und von Konturen oder Polygonen.

Signatur

moments_xld(XLD : : : M11, M20, M02)

Herror moments_xld(const Hobject XLD, double* M11, double* M20, double* M02)

Herror T_moments_xld(const Hobject XLD, Htuple* M11, Htuple* M20, Htuple* M02)

void MomentsXld(const HObject& XLD, HTuple* M11, HTuple* M20, HTuple* M02)

HTuple HXLD::MomentsXld(HTuple* M20, HTuple* M02) const

double HXLD::MomentsXld(double* M20, double* M02) const

static void HOperatorSet.MomentsXld(HObject XLD, out HTuple m11, out HTuple m20, out HTuple m02)

HTuple HXLD.MomentsXld(out HTuple m20, out HTuple m02)

double HXLD.MomentsXld(out double m20, out double m02)

Beschreibung

moments_xldmoments_xldMomentsXldMomentsXldMomentsXld berechnet die Momente (M20M20M20M20m20, M02M02M02M02m02) und das Trägheitsprodukt der Achsen durch den Schwerpunkt parallel zu den Koordinatenachsen (M11M11M11M11m11). Zur Definition dieser Größen siehe moments_region_2ndmoments_region_2ndMomentsRegion2ndMomentsRegion2ndMomentsRegion2nd. Die Momente werden durch Anwendung des Gaußschen Integralsatzes nur unter Verwendung der Kontur- oder Polygonpunkte berechnet, d.h. es wird keine explizite Fläche zur Berechnung erzeugt. Es wird vorausgesetzt, dass die Konturen bzw. Polygone geschlossen sind. Ist das nicht der Fall, werden sie künstlich geschlossen.

Es ist zu beachten, dass moments_xldmoments_xldMomentsXldMomentsXldMomentsXld nur dann sinnvolle Ergebnisse liefert, falls die Kontur oder das Polygon eine Fläche in der Ebene einschließt. Insbesondere darf sich die Kontur oder das Polygon nicht selbst schneiden. Dies ist insbesondere dann zu beachten, wenn offene Konturen und Polygone übergeben werden, da diese automatisch geschlossen werden, was dazu führen kann, dass sich die Kontur oder das Polygon selbst schneidet. Ob sich die Konturen oder Polygone selbst schneiden, kann leicht mit test_self_intersection_xldtest_self_intersection_xldTestSelfIntersectionXldTestSelfIntersectionXldTestSelfIntersectionXld überprüft werden. Falls sich die Kontur oder das Polygon selbst schneidet, können sinnvolle Werte für die Momente mit moments_points_xldmoments_points_xldMomentsPointsXldMomentsPointsXldMomentsPointsXld berechnet werden.

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.

Ausführungsinformationen

Parameter

XLDXLDXLDXLDXLD (input_object)  xld(-array) objectHXLDHXLDHobject

Zu untersuchende Konturen bzw. Polygone.

M11M11M11M11m11 (output_control)  real(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Trägheitsprodukt der Achsen durch den Schwerpunkt parallel zu den Koordinatenachsen.

M20M20M20M20m20 (output_control)  real(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Moment 2. Ordnung in Zeilenrichtung.

M02M02M02M02m02 (output_control)  real(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Moment 2. Ordnung in Spaltenrichtung.

Komplexität

Sei n die Anzahl der Punkte in der Kontur bzw. dem Polygon. Dann ist die Laufzeit O(n).

Ergebnis

moments_xldmoments_xldMomentsXldMomentsXldMomentsXld 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, smooth_contours_xldsmooth_contours_xldSmoothContoursXldSmoothContoursXldSmoothContoursXld, gen_polygons_xldgen_polygons_xldGenPolygonsXldGenPolygonsXldGenPolygonsXld

Alternativen

moments_any_xldmoments_any_xldMomentsAnyXldMomentsAnyXldMomentsAnyXld, moments_points_xldmoments_points_xldMomentsPointsXldMomentsPointsXldMomentsPointsXld, moments_any_points_xldmoments_any_points_xldMomentsAnyPointsXldMomentsAnyPointsXldMomentsAnyPointsXld

Siehe auch

moments_any_xldmoments_any_xldMomentsAnyXldMomentsAnyXldMomentsAnyXld, area_center_xldarea_center_xldAreaCenterXldAreaCenterXldAreaCenterXld, moments_region_2ndmoments_region_2ndMomentsRegion2ndMomentsRegion2ndMomentsRegion2nd, area_centerarea_centerAreaCenterAreaCenterAreaCenter

Modul

Foundation