KlassenKlassenKlassenKlassen | | | | Operatoren

area_center_xldarea_center_xldAreaCenterXldarea_center_xldAreaCenterXldAreaCenterXld (Operator)

Name

area_center_xldarea_center_xldAreaCenterXldarea_center_xldAreaCenterXldAreaCenterXld — Fläche und Schwerpunkt von Konturen oder Polygonen.

Signatur

area_center_xld(XLD : : : Area, Row, Column, PointOrder)

Herror area_center_xld(const Hobject XLD, double* Area, double* Row, double* Column, char* PointOrder)

Herror T_area_center_xld(const Hobject XLD, Htuple* Area, Htuple* Row, Htuple* Column, Htuple* PointOrder)

Herror area_center_xld(Hobject XLD, double* Area, double* Row, double* Column, char* PointOrder)

Herror area_center_xld(Hobject XLD, HTuple* Area, HTuple* Row, HTuple* Column, HTuple* PointOrder)

double HXLD::AreaCenterXld(double* Row, double* Column, char* PointOrder) const

HTuple HXLDArray::AreaCenterXld(HTuple* Row, HTuple* Column, HTuple* PointOrder) const

void AreaCenterXld(const HObject& XLD, HTuple* Area, HTuple* Row, HTuple* Column, HTuple* PointOrder)

HTuple HXLD::AreaCenterXld(HTuple* Row, HTuple* Column, HTuple* PointOrder) const

double HXLD::AreaCenterXld(double* Row, double* Column, HString* PointOrder) const

void HOperatorSetX.AreaCenterXld(
[in] IHUntypedObjectX* XLD, [out] VARIANT* Area, [out] VARIANT* Row, [out] VARIANT* Column, [out] VARIANT* PointOrder)

VARIANT HXLDX.AreaCenterXld(
[out] VARIANT* Row, [out] VARIANT* Column, [out] VARIANT* PointOrder)

VARIANT HXLDContX.AreaCenterXld(
[out] VARIANT* Row, [out] VARIANT* Column, [out] VARIANT* PointOrder)

VARIANT HXLDPolyX.AreaCenterXld(
[out] VARIANT* Row, [out] VARIANT* Column, [out] VARIANT* PointOrder)

VARIANT HXLDParaX.AreaCenterXld(
[out] VARIANT* Row, [out] VARIANT* Column, [out] VARIANT* PointOrder)

VARIANT HXLDModParaX.AreaCenterXld(
[out] VARIANT* Row, [out] VARIANT* Column, [out] VARIANT* PointOrder)

VARIANT HXLDExtParaX.AreaCenterXld(
[out] VARIANT* Row, [out] VARIANT* Column, [out] VARIANT* PointOrder)

static void HOperatorSet.AreaCenterXld(HObject XLD, out HTuple area, out HTuple row, out HTuple column, out HTuple pointOrder)

HTuple HXLD.AreaCenterXld(out HTuple row, out HTuple column, out HTuple pointOrder)

double HXLD.AreaCenterXld(out double row, out double column, out string pointOrder)

Beschreibung

area_center_xldarea_center_xldAreaCenterXldarea_center_xldAreaCenterXldAreaCenterXld berechnet die Fläche und den Schwerpunkt der von den Eingabekonturen oder -polygonen XLDXLDXLDXLDXLDXLD eingeschlossenen Flächen sowie den mathematischen Umlaufsinn der entsprechenden Stützpunkte. Die Fläche und der Schwerpunkt wird 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. Sind die Punkte einer Kontur bzw. eines Polygons entgegen dem Uhrzeigersinn angeordnet (d.h. im mathematisch positiven Sinn), ist PointOrderPointOrderPointOrderPointOrderPointOrderpointOrder 'positive'"positive""positive""positive""positive""positive". Es wird vorausgesetzt, dass die Kontur bzw. das Polygon geschlossen ist. Ist das nicht der Fall, wird sie/es künstlich geschlossen.

Es ist zu beachten, dass area_center_xldarea_center_xldAreaCenterXldarea_center_xldAreaCenterXldAreaCenterXld 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_xldTestSelfIntersectionXldtest_self_intersection_xldTestSelfIntersectionXldTestSelfIntersectionXld überprüft werden. Falls sich die Kontur oder das Polygon selbst schneidet, kann ein sinnvoller Wert für den Schwerpunkt mit area_center_points_xldarea_center_points_xldAreaCenterPointsXldarea_center_points_xldAreaCenterPointsXldAreaCenterPointsXld 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 XLDXLDXLDXLDXLDXLD abgespeichert.

Parallelisierung

Parameter

XLDXLDXLDXLDXLDXLD (input_object)  xld(-array) objectHXLDHXLDHXLDHXLDXHobject

Zu untersuchende Konturen bzw. Polygone.

AreaAreaAreaAreaAreaarea (output_control)  real(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Fläche, die von der Kontur bzw. dem Polygon eingeschlossen wird.

RowRowRowRowRowrow (output_control)  point.y(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Zeilenindex des Schwerpunktes.

ColumnColumnColumnColumnColumncolumn (output_control)  point.x(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Spaltenindex des Schwerpunktes.

PointOrderPointOrderPointOrderPointOrderPointOrderpointOrder (output_control)  string(-array) HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Mathematischer Umlaufsinn ('positive'/'negative') der Stützpunkte.

Komplexität

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

Ergebnis

area_center_xldarea_center_xldAreaCenterXldarea_center_xldAreaCenterXldAreaCenterXld 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>)set_system("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_xldGenContoursSkeletonXldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXld, smooth_contours_xldsmooth_contours_xldSmoothContoursXldsmooth_contours_xldSmoothContoursXldSmoothContoursXld, gen_polygons_xldgen_polygons_xldGenPolygonsXldgen_polygons_xldGenPolygonsXldGenPolygonsXld

Alternativen

area_center_points_xldarea_center_points_xldAreaCenterPointsXldarea_center_points_xldAreaCenterPointsXldAreaCenterPointsXld

Siehe auch

moments_xldmoments_xldMomentsXldmoments_xldMomentsXldMomentsXld, moments_any_xldmoments_any_xldMomentsAnyXldmoments_any_xldMomentsAnyXldMomentsAnyXld, area_centerarea_centerAreaCenterarea_centerAreaCenterAreaCenter, moments_region_2ndmoments_region_2ndMomentsRegion2ndmoments_region_2ndMomentsRegion2ndMomentsRegion2nd

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren