gen_ellipse_contour_xldgen_ellipse_contour_xldGenEllipseContourXldGenEllipseContourXld (Operator)

Name

gen_ellipse_contour_xldgen_ellipse_contour_xldGenEllipseContourXldGenEllipseContourXld — Erzeugen einer XLD-Kontur aus einem Ellipsenbogen.

Signatur

gen_ellipse_contour_xld( : ContEllipse : Row, Column, Phi, Radius1, Radius2, StartPhi, EndPhi, PointOrder, Resolution : )

Herror gen_ellipse_contour_xld(Hobject* ContEllipse, double Row, double Column, double Phi, double Radius1, double Radius2, double StartPhi, double EndPhi, const char* PointOrder, double Resolution)

Herror T_gen_ellipse_contour_xld(Hobject* ContEllipse, const Htuple Row, const Htuple Column, const Htuple Phi, const Htuple Radius1, const Htuple Radius2, const Htuple StartPhi, const Htuple EndPhi, const Htuple PointOrder, const Htuple Resolution)

void GenEllipseContourXld(HObject* ContEllipse, const HTuple& Row, const HTuple& Column, const HTuple& Phi, const HTuple& Radius1, const HTuple& Radius2, const HTuple& StartPhi, const HTuple& EndPhi, const HTuple& PointOrder, const HTuple& Resolution)

void HXLDCont::GenEllipseContourXld(const HTuple& Row, const HTuple& Column, const HTuple& Phi, const HTuple& Radius1, const HTuple& Radius2, const HTuple& StartPhi, const HTuple& EndPhi, const HTuple& PointOrder, double Resolution)

void HXLDCont::GenEllipseContourXld(double Row, double Column, double Phi, double Radius1, double Radius2, double StartPhi, double EndPhi, const HString& PointOrder, double Resolution)

void HXLDCont::GenEllipseContourXld(double Row, double Column, double Phi, double Radius1, double Radius2, double StartPhi, double EndPhi, const char* PointOrder, double Resolution)

void HXLDCont::GenEllipseContourXld(double Row, double Column, double Phi, double Radius1, double Radius2, double StartPhi, double EndPhi, const wchar_t* PointOrder, double Resolution)   (Nur Windows)

static void HOperatorSet.GenEllipseContourXld(out HObject contEllipse, HTuple row, HTuple column, HTuple phi, HTuple radius1, HTuple radius2, HTuple startPhi, HTuple endPhi, HTuple pointOrder, HTuple resolution)

void HXLDCont.GenEllipseContourXld(HTuple row, HTuple column, HTuple phi, HTuple radius1, HTuple radius2, HTuple startPhi, HTuple endPhi, HTuple pointOrder, double resolution)

void HXLDCont.GenEllipseContourXld(double row, double column, double phi, double radius1, double radius2, double startPhi, double endPhi, string pointOrder, double resolution)

Beschreibung

gen_ellipse_contour_xldgen_ellipse_contour_xldGenEllipseContourXldGenEllipseContourXldGenEllipseContourXld generiert einen oder mehrere Ellipsenbögen bzw. geschlossene Ellipsen. Die Ellipsen werden dabei durch ihren Mittelpunkt (RowRowRowRowrow, ColumnColumnColumnColumncolumn), die Orientierung der Hauptachse PhiPhiPhiPhiphi und die Länge der großen Radius1Radius1Radius1Radius1radius1 bzw. kleinen Halbachse Radius2Radius2Radius2Radius2radius2 beschrieben. Ellipsenbögen werden zusätzlich durch den Anfangs- und Endwinkel StartPhiStartPhiStartPhiStartPhistartPhi und EndPhiEndPhiEndPhiEndPhiendPhi des Start- bzw. Endpunktes, sowie den zugehörigen Umlaufsinn PointOrderPointOrderPointOrderPointOrderpointOrder charakterisiert. Die Anfangs- und Endwinkel werden von der positiven großen Halbachse aus gemessen, deren Orientierung durch PhiPhiPhiPhiphi gegeben ist. Sie beziehen sich auf den kleinsten die Ellipse umgebenden Kreis. Der tatsächliche Anfangs- und Endpunkt der Ellipse ergibt sich aus dem Schnittpunkt der Ellipse mit der Orthogonalprojektion des entsprechenden Kreispunktes auf die große Halbachse. Beide Winkel werden dabei im Ellipsenkoordinatensystem bezogen auf die Hauptachse der Ellipse mathematisch positiv angegeben. Die beiden Hauptpole der Ellipse haben demnach die Winkel 0 bzw. , die Nebenpole die Winkel bzw. 3*pi/2. Um eine geschlossene Ellipse zu erhalten, müssen die Werte 0 und (bei positivem Umlaufsinn) übergeben werden. Für alle Winkel sind beliebige Werte zugelassen, da diese intern auf das Intervall abgebildet werden. Die Auflösung der resultierenden XLD Konturen ContEllipseContEllipseContEllipseContEllipsecontEllipse wird über den Parameter ResolutionResolutionResolutionResolutionresolution festgelegt: Er bestimmt den maximalen euklidischen Abstand zwischen benachbarten Konturpunkten. Die Auflösung wird auf den kleinsten zulässigen Wert gesetzt, wenn der Eingabewert diesen Wert unterschreitet.

Ausführungsinformationen

Parameter

ContEllipseContEllipseContEllipseContEllipsecontEllipse (output_object)  xld_cont(-array) objectHXLDContHXLDContHobject *

Ausgabe-Kontur.

RowRowRowRowrow (input_control)  ellipse.center.y(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Zeilenkoordinate des Mittelpunktes der Ellipse.

Defaultwert: 200.0

ColumnColumnColumnColumncolumn (input_control)  ellipse.center.x(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Spaltenkoordinate des Mittelpunktes der Ellipse.

Defaultwert: 200.0

PhiPhiPhiPhiphi (input_control)  ellipse.angle.rad(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Orientierung der Hauptachse [rad].

Defaultwert: 0.0

Radius1Radius1Radius1Radius1radius1 (input_control)  ellipse.radius1(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Länge der großen Halbachse.

Defaultwert: 100.0

Restriktion: Radius1 > 0

Radius2Radius2Radius2Radius2radius2 (input_control)  ellipse.radius2(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Länge der kleinen Halbachse.

Defaultwert: 50.0

Restriktion: Radius2 >= 0 && Radius2 <= Radius1

StartPhiStartPhiStartPhiStartPhistartPhi (input_control)  angle.rad(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Winkel des Startpunktes auf dem kleinsten umgebenden Kreis [rad].

Defaultwert: 0.0

EndPhiEndPhiEndPhiEndPhiendPhi (input_control)  angle.rad(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Winkel des Endpunktes auf dem kleinsten umgebenden Kreis [rad].

Defaultwert: 6.28318

PointOrderPointOrderPointOrderPointOrderpointOrder (input_control)  string(-array) HTupleHTupleHtuple (string) (string) (HString) (char*)

mathematischer Umlaufsinn.

Defaultwert: 'positive' "positive" "positive" "positive" "positive"

Werteliste: 'negative'"negative""negative""negative""negative", 'positive'"positive""positive""positive""positive"

ResolutionResolutionResolutionResolutionresolution (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Auflösung: Maximaler Abstand zwischen benachbarten Konturpunkten.

Defaultwert: 1.5

Restriktion: Resolution >= 1.192e-7

Beispiel (HDevelop)

draw_ellipse(WindowHandle,Row,Column,Phi,Radius1,Radius2)
gen_ellipse_contour_xld(Ellipse,Row,Column,Phi,Radius1,Radius2,0,6.28319, \
                        'positive',1.5)
length_xld(Ellipse,Length)
* Transform StartPhi so that the start point of the ellipse actually
* intersects the line through origin at the angle StartPhi measured from
* the positive main axis
affine_trans_point_2d ([1.0,0.0,0.0,0.0,1.0*Radius2/Radius1,0.0], \
                       sin(StartPhi), cos(StartPhi), Qx, Qy)
StartPhiEllipse := atan2(Qx,Qy)

Beispiel (C)

draw_ellipse(WindowHandle,&Row,&Column,&Phi,&Radius1,&Radius2);
gen_ellipse_contour_xld(&Ellipse,Row,Column,Phi,Radius1,Radius2,0,6.28319,
                        "positive");
length_xld(Ellipse,&Length);

Beispiel (HDevelop)

draw_ellipse(WindowHandle,Row,Column,Phi,Radius1,Radius2)
gen_ellipse_contour_xld(Ellipse,Row,Column,Phi,Radius1,Radius2,0,6.28319, \
                        'positive',1.5)
length_xld(Ellipse,Length)
* Transform StartPhi so that the start point of the ellipse actually
* intersects the line through origin at the angle StartPhi measured from
* the positive main axis
affine_trans_point_2d ([1.0,0.0,0.0,0.0,1.0*Radius2/Radius1,0.0], \
                       sin(StartPhi), cos(StartPhi), Qx, Qy)
StartPhiEllipse := atan2(Qx,Qy)

Beispiel (HDevelop)

draw_ellipse(WindowHandle,Row,Column,Phi,Radius1,Radius2)
gen_ellipse_contour_xld(Ellipse,Row,Column,Phi,Radius1,Radius2,0,6.28319, \
                        'positive',1.5)
length_xld(Ellipse,Length)
* Transform StartPhi so that the start point of the ellipse actually
* intersects the line through origin at the angle StartPhi measured from
* the positive main axis
affine_trans_point_2d ([1.0,0.0,0.0,0.0,1.0*Radius2/Radius1,0.0], \
                       sin(StartPhi), cos(StartPhi), Qx, Qy)
StartPhiEllipse := atan2(Qx,Qy)

Beispiel (HDevelop)

draw_ellipse(WindowHandle,Row,Column,Phi,Radius1,Radius2)
gen_ellipse_contour_xld(Ellipse,Row,Column,Phi,Radius1,Radius2,0,6.28319, \
                        'positive',1.5)
length_xld(Ellipse,Length)
* Transform StartPhi so that the start point of the ellipse actually
* intersects the line through origin at the angle StartPhi measured from
* the positive main axis
affine_trans_point_2d ([1.0,0.0,0.0,0.0,1.0*Radius2/Radius1,0.0], \
                       sin(StartPhi), cos(StartPhi), Qx, Qy)
StartPhiEllipse := atan2(Qx,Qy)

Ergebnis

Sind die Parameterwerte korrekt, dann liefert gen_ellipse_contour_xldgen_ellipse_contour_xldGenEllipseContourXldGenEllipseContourXldGenEllipseContourXld den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

draw_ellipsedraw_ellipseDrawEllipseDrawEllipseDrawEllipse

Nachfolger

disp_xlddisp_xldDispXldDispXldDispXld, get_points_ellipseget_points_ellipseGetPointsEllipseGetPointsEllipseGetPointsEllipse

Alternativen

gen_circle_contour_xldgen_circle_contour_xldGenCircleContourXldGenCircleContourXldGenCircleContourXld

Modul

Foundation