dist_ellipse_contour_points_xldT_dist_ellipse_contour_points_xldDistEllipseContourPointsXldDistEllipseContourPointsXld (Operator)
Name
dist_ellipse_contour_points_xldT_dist_ellipse_contour_points_xldDistEllipseContourPointsXldDistEllipseContourPointsXld
— Berechnen der Abstände von allen Punkten einer Kontur zu einer Ellipse.
Signatur
void DistEllipseContourPointsXld(const HObject& Contour, const HTuple& DistanceMode, const HTuple& ClippingEndPoints, const HTuple& Row, const HTuple& Column, const HTuple& Phi, const HTuple& Radius1, const HTuple& Radius2, HTuple* Distances)
HTuple HXLDCont::DistEllipseContourPointsXld(const HString& DistanceMode, Hlong ClippingEndPoints, double Row, double Column, double Phi, double Radius1, double Radius2) const
HTuple HXLDCont::DistEllipseContourPointsXld(const char* DistanceMode, Hlong ClippingEndPoints, double Row, double Column, double Phi, double Radius1, double Radius2) const
HTuple HXLDCont::DistEllipseContourPointsXld(const wchar_t* DistanceMode, Hlong ClippingEndPoints, double Row, double Column, double Phi, double Radius1, double Radius2) const
(Nur Windows)
static void HOperatorSet.DistEllipseContourPointsXld(HObject contour, HTuple distanceMode, HTuple clippingEndPoints, HTuple row, HTuple column, HTuple phi, HTuple radius1, HTuple radius2, out HTuple distances)
HTuple HXLDCont.DistEllipseContourPointsXld(string distanceMode, int clippingEndPoints, double row, double column, double phi, double radius1, double radius2)
Beschreibung
Der operator dist_ellipse_contour_points_xlddist_ellipse_contour_points_xldDistEllipseContourPointsXldDistEllipseContourPointsXldDistEllipseContourPointsXld
bestimmt die Abstände
zwischen Punkten einer Kontur ContourContourContourContourcontour
und einer Ellipse, welche
durch ihren Mittelpunkt (RowRowRowRowrow
, ColumnColumnColumnColumncolumn
), die Orientierung
PhiPhiPhiPhiphi
der großen Achse und den Länge der großen und kleinen Achse
Radius1Radius1Radius1Radius1radius1
beziehungsweise Radius2Radius2Radius2Radius2radius2
definiert ist.
Das Distanzmaß ist der geometrische Abstand, welcher manchmal auch
orthogonaler Abstand genannt wird. Die Abstände DistancesDistancesDistancesDistancesdistances
werden
für alle Punkte auf der Kontur berechnet. Normalerweise ist der Abstand ein
positiver Wert; dann ist die Option DistanceModeDistanceModeDistanceModeDistanceModedistanceMode
gleich
'unsigned'"unsigned""unsigned""unsigned""unsigned" zu wählen. Wird dagegen die Option 'signed'"signed""signed""signed""signed"
gewählt, so weisen die Abständen positives oder negatives Vorzeichen auf,
je nachdem ob sie außerhalb oder innerhalb der Ellipse liegen.
Je nach Vorverarbeitung sind die Start- und Endpunkte einer Kontur
nicht exakt bekannt. Dann wird der Operator fit_ellipse_contour_xldfit_ellipse_contour_xldFitEllipseContourXldFitEllipseContourXldFitEllipseContourXld
typischerweise mit einem Wert größer null für den Parameter
ClippingEndPointsClippingEndPointsClippingEndPointsClippingEndPointsclippingEndPoints
aufgerufen, um eine bestimmte Anzahl an Punkten
an beiden Enden der Kontur für die Berechnung auszuschließen. Damit der
geometrische Abstand für dieselben Konturpunkte wie in dem
Ellipsen-Fitting-Prozess berechnet werden kann, ist für den Parameter
ClippingEndPointsClippingEndPointsClippingEndPointsClippingEndPointsclippingEndPoints
auch derselbe Wert zu wählen.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Parameter
ContourContourContourContourcontour
(input_object) xld_cont →
objectHXLDContHXLDContHobject
Eingabekonturen.
DistanceModeDistanceModeDistanceModeDistanceModedistanceMode
(input_control) string →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Modus für Distanzwerte mit oder ohne Vorzeichen.
Defaultwert:
'unsigned'
"unsigned"
"unsigned"
"unsigned"
"unsigned"
Werteliste: 'signed'"signed""signed""signed""signed", 'unsigned'"unsigned""unsigned""unsigned""unsigned"
ClippingEndPointsClippingEndPointsClippingEndPointsClippingEndPointsclippingEndPoints
(input_control) integer →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Anzahl der Konturpunkte am Anfang und Ende der
Kontur, die für die Abstandsberechnung ignoriert werden
sollen.
Defaultwert: 0
Restriktion: ClippingEndPoints >= 0
RowRowRowRowrow
(input_control) ellipse.center.y →
HTupleHTupleHtuple (real) (double) (double) (double)
Zeilenkoordinate des Mittelpunktes der Ellipse.
ColumnColumnColumnColumncolumn
(input_control) ellipse.center.x →
HTupleHTupleHtuple (real) (double) (double) (double)
Spaltenkoordinate des Mittelpunktes der Ellipse.
PhiPhiPhiPhiphi
(input_control) ellipse.angle.rad →
HTupleHTupleHtuple (real) (double) (double) (double)
Orientierung der Hauptachse im Bogenmaß.
Restriktion: Phi >= 0 && Phi <= 6.283185307
Radius1Radius1Radius1Radius1radius1
(input_control) ellipse.radius1 →
HTupleHTupleHtuple (real) (double) (double) (double)
Länge der großen Halbachse.
Restriktion: Radius1 > 0
Radius2Radius2Radius2Radius2radius2
(input_control) ellipse.radius2 →
HTupleHTupleHtuple (real) (double) (double) (double)
Länge der kleinen Halbachse.
Restriktion: Radius2 >= 0 && Radius2 <= Radius1
DistancesDistancesDistancesDistancesdistances
(output_control) real-array →
HTupleHTupleHtuple (real) (double) (double) (double)
Abstände der Konturpunkte zur Ellipse.
Ergebnis
Sind die Parameterwerte korrekt, dann liefert
dist_ellipse_contour_points_xlddist_ellipse_contour_points_xldDistEllipseContourPointsXldDistEllipseContourPointsXldDistEllipseContourPointsXld
den Wert 2 (H_MSG_TRUE).
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
fit_ellipse_contour_xldfit_ellipse_contour_xldFitEllipseContourXldFitEllipseContourXldFitEllipseContourXld
Alternativen
dist_ellipse_contour_xlddist_ellipse_contour_xldDistEllipseContourXldDistEllipseContourXldDistEllipseContourXld
Modul
Foundation