area_center_points_xld
— Fläche und Schwerpunkt von Konturen oder Polygonen, die als
Punktwolken betrachtet werden.
area_center_points_xld
berechnet die Fläche und den
Schwerpunkt der von den Eingabekonturen oder -polygonen XLD
definierten Punktwolken (d.h. die Reihenfolge der Kontur- oder
Polygonpunkte wird nicht berücksichtigt). Die Fläche ist im Falle
der Punktwolke gegeben durch die Anzahl der Punkte. Der Schwerpunkt
entspricht dem arithmetischen Mittel der Punkte. Bei geschlossenen
Konturen oder Polygonen (Anfangspunkt = Endpunkt) wird der Endpunkt
der Kontur oder des Polygons nicht berücksichtigt, da er sonst
doppeltes Gewicht erhielte.
area_center_points_xld
sollte dann verwendet werden, wenn die Kontur
XLD
entweder nicht kreuzungsfrei ist oder nicht kreuzungsfrei durch
eine Line vom End- zum Anfangspunkt geschlossen werden kann. In diesem Fall
liefert area_center_xld
keine sinnvollen Ergebnisse. Ob sich die
Konturen oder Polygone selbst schneiden, kann leicht mit
test_self_intersection_xld
überprüft werden.
Wird mehr als eine Kontur oder ein Polygon übergeben, dann werden
die Ergebnisse in Tupeln in der gleichen Reihenfolge wie die
entsprechenden Konturen bzw. Polygone in XLD
abgespeichert.
Auch wenn sich die Eingabekontur oder das -polygon XLD
nicht
selbst überschneidet unterscheidet sich das Ergebnis von
area_center_points_xld
deutlich von dem Ergebnis, das durch
area_center_xld
erzielt werden würde, da das Ergebnis aus der
Punktwolke der Kontur und nicht aus der umschlossenen Region berechnet
wird.
XLD
(input_object) xld(-array) →
object
Zu untersuchende Punktwolken als Konturen bzw. Polygone.
Area
(output_control) real(-array) →
(real)
Fläche der Punktwolke.
Row
(output_control) point.y(-array) →
(real)
Zeilenindex des Schwerpunktes.
Column
(output_control) point.x(-array) →
(real)
Spaltenindex des Schwerpunktes.
Sei n die Anzahl der Punkte in der Kontur bzw. dem Polygon. Dann ist die Laufzeit O(n).
area_center_points_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_points_xld
,
moments_any_points_xld
,
area_center
,
moments_region_2nd
Foundation