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
)

Creation of an XLD contour corresponding to an elliptic arc.

::gen_ellipse_contour_xld creates one or more elliptic arcs or closed ellipses. Ellipses are specified by their center (Row, Column), the orientation of the main axis Phi, the length of the larger half axis Radius1, and the length of the smaller half axis Radius2. In addition to that, elliptic arcs are characterized by the angle of the start point StartPhi, the angle of the end point EndPhi, and the point order PointOrder along the boundary. The angles in the interval [0,2*PI] are measured in the coordinate system of the ellipse relative to the main axis. Thus, the two main poles correspond to the angles 0 and PI, the two other poles to the angles PI/2 and 3*pi/2. To create a closed ellipse the values 0 and 2*PI (with positive point order) have to be passed to the operator. The resolution of the resulting contours ContEllipse is controlled via Resolution containing the maximum Euclidean distance between neighboring contour points.


Parameters

ContEllipse (output_object)
xld_cont(-array) -> Hobject * : HXLDCont(Array)
Resulting contour.

Row (input_control)
ellipse.center.y(-array) -> HTuple.double
Row coordinate of the center of the ellipse.
Default value: 200.0
Suggested values: 0.0, 10.0, 20.0, 50.0, 100.0, 200.0, 300.0, 400.0

Column (input_control)
ellipse.center.x(-array) -> HTuple.double
Column coordinate of the center of the ellipse.
Default value: 200.0
Suggested values: 0.0, 10.0, 20.0, 50.0, 100.0, 200.0, 300.0, 400.0

Phi (input_control)
ellipse.angle.rad(-array) -> HTuple.double
Orientation of the main axis [rad].
Default value: 0.0
Suggested values: -1.178097, -0.785398, -0.392699, 0.0, 0.392699, 0.785398, 1.178097
Restriction: (Phi >= 0) && (Phi <= 6.283185307)

Radius1 (input_control)
ellipse.radius1(-array) -> HTuple.double
Length of the larger half axis.
Default value: 100.0
Suggested values: 2.0, 5.0, 10.0, 20.0, 50.0, 100.0, 256.0, 300.0, 400.0
Restriction: Radius1 > 0

Radius2 (input_control)
ellipse.radius2(-array) -> HTuple.double
Length of the smaller half axis.
Default value: 50.0
Suggested values: 1.0, 2.0, 4.0, 5.0, 10.0, 20.0, 50.0, 100.0, 256.0, 300.0, 400.0
Restriction: Radius2 >= 0

StartPhi (input_control)
real(-array) -> HTuple.double
Angle of the start point [rad].
Default value: 0.0
Suggested values: 0.0, 0.78539, 1.57079, 2.35619, 3.14159, 3.92699, 4.71238, 5.49778, 6.28318
Restriction: (StartPhi >= 0) && (StartPhi <= 6.283185307)

EndPhi (input_control)
real(-array) -> HTuple.double
Angle of the end point [rad].
Default value: 6.28318
Suggested values: 0.0, 0.78539, 1.57079, 2.35619, 3.14159, 3.92699, 4.71238, 5.49778, 6.28318
Restriction: (EndPhi >= 0) && (EndPhi <= 6.283185307)

PointOrder (input_control)
string(-array) -> HTuple.char *
point order along the boundary.
Default value: 'positive'
List of values: 'positive', 'negative'

Resolution (input_control)
real -> HTuple.double
Resolution: Maximum distance bewteen neighboring contour points.
Default value: 1.5
Suggested values: 0.5, 1.0, 1.5, 2.0, 2.5, 3.0
Restriction: Resolution > 0


Example
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);

Result

::gen_ellipse_contour_xld returns H_MSG_TRUE if all parameter values are correct. If necessary, an exception is raised.


Possible Predecessors

::draw_ellipse


Possible Successors

::disp_xld, ::get_points_ellipse


Module

Sub-pixel operators



Copyright © 1996-2002 MVTec Software GmbH