Name
gen_ellipse_contour_xldgen_ellipse_contour_xldGenEllipseContourXldgen_ellipse_contour_xldGenEllipseContourXldGenEllipseContourXld — Erzeugen einer XLD-Kontur aus einem Ellipsenbogen.
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)
Herror 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)
HXLDCont 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, const HTuple& Resolution)
HXLDContArray HXLDContArray::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, 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 HOperatorSetX.GenEllipseContourXld(
[out] IHUntypedObjectX** ContEllipse, [in] VARIANT Row, [in] VARIANT Column, [in] VARIANT Phi, [in] VARIANT Radius1, [in] VARIANT Radius2, [in] VARIANT StartPhi, [in] VARIANT EndPhi, [in] VARIANT PointOrder, [in] VARIANT Resolution)
void HXLDContX.GenEllipseContourXld(
[in] VARIANT Row, [in] VARIANT Column, [in] VARIANT Phi, [in] VARIANT Radius1, [in] VARIANT Radius2, [in] VARIANT StartPhi, [in] VARIANT EndPhi, [in] VARIANT PointOrder, [in] double Resolution)
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)
gen_ellipse_contour_xldgen_ellipse_contour_xldGenEllipseContourXldgen_ellipse_contour_xldGenEllipseContourXldGenEllipseContourXld generiert einen oder mehrere Ellipsenbögen
bzw. geschlossene Ellipsen. Die Ellipsen werden dabei
durch ihren Mittelpunkt (RowRowRowRowRowrow, ColumnColumnColumnColumnColumncolumn), die
Orientierung der Hauptachse PhiPhiPhiPhiPhiphi und die Länge der großen
Radius1Radius1Radius1Radius1Radius1radius1 bzw. kleinen Halbachse Radius2Radius2Radius2Radius2Radius2radius2
beschrieben.
Ellipsenbögen werden zusätzlich durch den Anfangs- und Endwinkel
StartPhiStartPhiStartPhiStartPhiStartPhistartPhi und EndPhiEndPhiEndPhiEndPhiEndPhiendPhi des Start- bzw. Endpunktes,
sowie den zugehörigen Umlaufsinn PointOrderPointOrderPointOrderPointOrderPointOrderpointOrder charakterisiert.
Die Anfangs- und Endwinkel werden von der positiven großen Halbachse
aus gemessen, deren Orientierung durch PhiPhiPhiPhiPhiphi 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. PI, die Nebenpole die Winkel
PI/2 bzw. 3*pi/2. Um eine geschlossene Ellipse
zu erhalten, müssen die Werte 0 und 2*PI
(bei positivem Umlaufsinn) übergeben werden. Für alle Winkel sind beliebige
Werte zugelassen, da diese intern auf das Intervall [0,2*PI]
abgebildet werden.
Die Auflösung der resultierenden XLD Konturen ContEllipseContEllipseContEllipseContEllipseContEllipsecontEllipse
wird über den Parameter ResolutionResolutionResolutionResolutionResolutionresolution 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.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Zeilenkoordinate des Mittelpunktes der Ellipse.
Defaultwert: 200.0
Spaltenkoordinate des Mittelpunktes der Ellipse.
Defaultwert: 200.0
Orientierung der Hauptachse [rad].
Defaultwert: 0.0
Länge der großen Halbachse.
Defaultwert: 100.0
Restriktion: Radius1 > 0
Länge der kleinen Halbachse.
Defaultwert: 50.0
Restriktion: Radius2 >= 0 && Radius2 <= Radius1
Winkel des Startpunktes auf dem kleinsten umgebenden Kreis
[rad].
Defaultwert: 0.0
Winkel des Endpunktes auf dem kleinsten umgebenden Kreis
[rad].
Defaultwert: 6.28318
mathematischer Umlaufsinn.
Defaultwert:
'positive'
"positive"
"positive"
"positive"
"positive"
"positive"
Werteliste: 'negative'"negative""negative""negative""negative""negative", 'positive'"positive""positive""positive""positive""positive"
Auflösung: Maximaler Abstand zwischen benachbarten
Konturpunkten.
Defaultwert: 1.5
Restriktion: Resolution >= 1.192e-7
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)
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);
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)
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)
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)
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)
Sind die Parameterwerte korrekt, dann liefert
gen_ellipse_contour_xldgen_ellipse_contour_xldGenEllipseContourXldgen_ellipse_contour_xldGenEllipseContourXldGenEllipseContourXld den Wert 2 (H_MSG_TRUE). Gegebenenfalls
wird eine Fehlerbehandlung durchgeführt.
draw_ellipsedraw_ellipseDrawEllipsedraw_ellipseDrawEllipseDrawEllipse
disp_xlddisp_xldDispXlddisp_xldDispXldDispXld,
get_points_ellipseget_points_ellipseGetPointsEllipseget_points_ellipseGetPointsEllipseGetPointsEllipse
gen_circle_contour_xldgen_circle_contour_xldGenCircleContourXldgen_circle_contour_xldGenCircleContourXldGenCircleContourXld
Foundation