KlassenKlassenKlassenKlassen | | | | Operatoren

gen_ellipse_contour_xldgen_ellipse_contour_xldGenEllipseContourXldgen_ellipse_contour_xldGenEllipseContourXldGenEllipseContourXld (Operator)

Name

gen_ellipse_contour_xldgen_ellipse_contour_xldGenEllipseContourXldgen_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)

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)

Beschreibung

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. , 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 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.

Parallelisierung

Parameter

ContEllipseContEllipseContEllipseContEllipseContEllipsecontEllipse (output_object)  xld_cont(-array) objectHXLDContHXLDContHXLDContHXLDContXHobject *

Ausgabe-Kontur.

RowRowRowRowRowrow (input_control)  ellipse.center.y(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Zeilenkoordinate des Mittelpunktes der Ellipse.

Defaultwert: 200.0

ColumnColumnColumnColumnColumncolumn (input_control)  ellipse.center.x(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Spaltenkoordinate des Mittelpunktes der Ellipse.

Defaultwert: 200.0

PhiPhiPhiPhiPhiphi (input_control)  ellipse.angle.rad(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Orientierung der Hauptachse [rad].

Defaultwert: 0.0

Radius1Radius1Radius1Radius1Radius1radius1 (input_control)  ellipse.radius1(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Länge der großen Halbachse.

Defaultwert: 100.0

Restriktion: Radius1 > 0

Radius2Radius2Radius2Radius2Radius2radius2 (input_control)  ellipse.radius2(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Länge der kleinen Halbachse.

Defaultwert: 50.0

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

StartPhiStartPhiStartPhiStartPhiStartPhistartPhi (input_control)  real(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

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

Defaultwert: 0.0

EndPhiEndPhiEndPhiEndPhiEndPhiendPhi (input_control)  real(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

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

Defaultwert: 6.28318

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

mathematischer Umlaufsinn.

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

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

ResolutionResolutionResolutionResolutionResolutionresolution (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (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)

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_xldGenEllipseContourXldgen_ellipse_contour_xldGenEllipseContourXldGenEllipseContourXld den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

draw_ellipsedraw_ellipseDrawEllipsedraw_ellipseDrawEllipseDrawEllipse

Nachfolger

disp_xlddisp_xldDispXlddisp_xldDispXldDispXld, get_points_ellipseget_points_ellipseGetPointsEllipseget_points_ellipseGetPointsEllipseGetPointsEllipse

Alternativen

gen_circle_contour_xldgen_circle_contour_xldGenCircleContourXldgen_circle_contour_xldGenCircleContourXldGenCircleContourXld

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren