area_center_points_xldarea_center_points_xldAreaCenterPointsXldAreaCenterPointsXldarea_center_points_xld (Operator)
Name
area_center_points_xldarea_center_points_xldAreaCenterPointsXldAreaCenterPointsXldarea_center_points_xld — Fläche und Schwerpunkt von Konturen oder Polygonen, die als
Punktwolken betrachtet werden.
Signatur
Herror area_center_points_xld(const Hobject XLD, double* Area, double* Row, double* Column)
Herror T_area_center_points_xld(const Hobject XLD, Htuple* Area, Htuple* Row, Htuple* Column)
def area_center_points_xld(xld: HObject) -> Tuple[Sequence[float], Sequence[float], Sequence[float]]
def area_center_points_xld_s(xld: HObject) -> Tuple[float, float, float]
Beschreibung
area_center_points_xldarea_center_points_xldAreaCenterPointsXldAreaCenterPointsXldAreaCenterPointsXldarea_center_points_xld berechnet die Fläche und den
Schwerpunkt der von den Eingabekonturen oder -polygonen XLDXLDXLDXLDXLDxld
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_xldarea_center_points_xldAreaCenterPointsXldAreaCenterPointsXldAreaCenterPointsXldarea_center_points_xld sollte dann verwendet werden, wenn die Kontur
XLDXLDXLDXLDXLDxld entweder nicht kreuzungsfrei ist oder nicht kreuzungsfrei durch
eine Line vom End- zum Anfangspunkt geschlossen werden kann. In diesem Fall
liefert area_center_xldarea_center_xldAreaCenterXldAreaCenterXldAreaCenterXldarea_center_xld keine sinnvollen Ergebnisse. Ob sich die
Konturen oder Polygone selbst schneiden, kann leicht mit
test_self_intersection_xldtest_self_intersection_xldTestSelfIntersectionXldTestSelfIntersectionXldTestSelfIntersectionXldtest_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 XLDXLDXLDXLDXLDxld abgespeichert.
Achtung
Auch wenn sich die Eingabekontur oder das -polygon XLDXLDXLDXLDXLDxld nicht
selbst überschneidet unterscheidet sich das Ergebnis von
area_center_points_xldarea_center_points_xldAreaCenterPointsXldAreaCenterPointsXldAreaCenterPointsXldarea_center_points_xld deutlich von dem Ergebnis, das durch
area_center_xldarea_center_xldAreaCenterXldAreaCenterXldAreaCenterXldarea_center_xld erzielt werden würde, da das Ergebnis aus der
Punktwolke der Kontur und nicht aus der umschlossenen Region berechnet
wird.
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
XLDXLDXLDXLDXLDxld (input_object) xld(-array) → objectHXLDHObjectHXLDHobject
Zu untersuchende Punktwolken als Konturen bzw.
Polygone.
AreaAreaAreaAreaareaarea (output_control) real(-array) → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Fläche der Punktwolke.
RowRowRowRowrowrow (output_control) point.y(-array) → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Zeilenindex des Schwerpunktes.
ColumnColumnColumnColumncolumncolumn (output_control) point.x(-array) → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Spaltenindex des Schwerpunktes.
Komplexität
Sei n die Anzahl der Punkte in der Kontur bzw. dem
Polygon. Dann ist die Laufzeit O(n).
Ergebnis
area_center_points_xldarea_center_points_xldAreaCenterPointsXldAreaCenterPointsXldAreaCenterPointsXldarea_center_points_xld liefert den Wert 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>)set_system("no_object_result",<Result>)
festlegen. Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
Vorgänger
gen_contours_skeleton_xldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXldGenContoursSkeletonXldgen_contours_skeleton_xld,
smooth_contours_xldsmooth_contours_xldSmoothContoursXldSmoothContoursXldSmoothContoursXldsmooth_contours_xld,
gen_polygons_xldgen_polygons_xldGenPolygonsXldGenPolygonsXldGenPolygonsXldgen_polygons_xld
Alternativen
area_center_xldarea_center_xldAreaCenterXldAreaCenterXldAreaCenterXldarea_center_xld
Siehe auch
moments_points_xldmoments_points_xldMomentsPointsXldMomentsPointsXldMomentsPointsXldmoments_points_xld,
moments_any_points_xldmoments_any_points_xldMomentsAnyPointsXldMomentsAnyPointsXldMomentsAnyPointsXldmoments_any_points_xld,
area_centerarea_centerAreaCenterAreaCenterAreaCenterarea_center,
moments_region_2ndmoments_region_2ndMomentsRegion2ndMomentsRegion2ndMomentsRegion2ndmoments_region_2nd
Modul
Foundation