moments_xld
— Geometrische Momente , und
von Konturen oder Polygonen.
moments_xld
berechnet die Momente (M20
,
M02
) und das Trägheitsprodukt der Achsen durch den
Schwerpunkt parallel zu den Koordinatenachsen (M11
).
Zur Definition dieser Größen siehe moments_region_2nd
. 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_xld
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_xld
überprüft werden. Falls sich die
Kontur oder das Polygon selbst schneidet, können sinnvolle Werte
für die Momente mit moments_points_xld
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 XLD
abgespeichert.
XLD
(input_object) xld(-array) →
object
Zu untersuchende Konturen bzw. Polygone.
M11
(output_control) real(-array) →
(real)
Trägheitsprodukt der Achsen durch den Schwerpunkt parallel zu den Koordinatenachsen.
M20
(output_control) real(-array) →
(real)
Moment 2. Ordnung in Zeilenrichtung.
M02
(output_control) real(-array) →
(real)
Moment 2. Ordnung in Spaltenrichtung.
Sei n die Anzahl der Punkte in der Kontur bzw. dem Polygon. Dann ist die Laufzeit O(n).
moments_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>:)
festlegen. Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
gen_contours_skeleton_xld
,
smooth_contours_xld
,
gen_polygons_xld
moments_any_xld
,
moments_points_xld
,
moments_any_points_xld
moments_any_xld
,
area_center_xld
,
moments_region_2nd
,
area_center
Foundation