gen_ellipseπ
Short descriptionπ
gen_ellipse β Create an ellipse.
Signatureπ
gen_ellipse( out region Ellipse, ellipse.center.y Row, ellipse.center.x Column, ellipse.angle.rad Phi, ellipse.radius1 Radius1, ellipse.radius2 Radius2 )
Descriptionπ
The operator gen_ellipse generates one or more ellipses with the
center
(Row, Column), the orientation Phi
and the half-radii (half axes) Radius1 and Radius2.
The angle is indicated in arc measure according toΒ the \(x\) axis
in mathematically positive direction.
More than one region can be created by
passing tuples of parameter values.
The center must be located within the image coordinates.
The coordinate system runs from (0,0) (upper left corner) to
(Width-1,Height-1). See get_system
and reset_obj_db in this context.
If the ellipse reaches beyond the edge of the image it is clipped
to the current image format according to the value of
the system flag 'clip_region' (set_system).
Parameter Broadcastingπ
This operator supports parameter broadcasting. This means that each parameter can be given as a tuple of length 1 or N. Parameters with tuple length 1 will be repeated internally such that the number of created items is always N.
Execution informationπ
Execution information
-
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
-
Multithreading scope: global (may be called from any thread).
-
Processed without parallelization.
Parametersπ
Ellipse (output_object) region(-array) β object
Created ellipse(s).
Row (input_control) ellipse.center.y(-array) β (real / integer)
Line index of center.
Default: 200.0
Suggested values: 0.0, 10.0, 20.0, 50.0, 100.0, 256.0, 300.0, 400.0
Value range: Row (lin)
Minimum increment: 1.0
Recommended increment: 10.0
Column (input_control) ellipse.center.x(-array) β (real / integer)
Column index of center.
Default: 200.0
Suggested values: 0.0, 10.0, 20.0, 50.0, 100.0, 256.0, 300.0, 400.0
Value range: Column (lin)
Minimum increment: 1.0
Recommended increment: 10.0
Phi (input_control) ellipse.angle.rad(-array) β (real / integer)
Orientation of the longer radius (Radius1).
Default: 0.0
Suggested values: -1.178097, -0.785398, -0.392699, 0.0, 0.392699, 0.785398, 1.178097
Value range: Phi (lin)
Radius1 (input_control) ellipse.radius1(-array) β (real / integer)
Longer radius.
Default: 100.0
Suggested values: 2.0, 5.0, 10.0, 20.0, 50.0, 100.0, 256.0, 300.0, 400.0
Value range: Radius1 (lin)
Minimum increment: 1.0
Recommended increment: 10.0
Restriction: Radius1 > 0
Radius2 (input_control) ellipse.radius2(-array) β (real / integer)
Shorter radius.
Default: 60.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
Value range: Radius2 (lin)
Minimum increment: 1.0
Recommended increment: 10.0
Restriction: Radius2 > 0
Exampleπ
(HDevelop)
read_image (Image, 'fabrik')
gen_ellipse (Ellipse, 200, 200, rad(10), 160, 90)
reduce_domain (Image, Ellipse, ImageReduced)
dev_clear_window ()
dev_display (ImageReduced)
Complexityπ
Runtime complexity: \(O(\textrm{Radius1} * 2)\)
Storage complexity (byte): \(O(\textrm{Radius1} * 8)\)
Resultπ
If the parameter values are correct, the operator gen_ellipse
returns the value 2 (H_MSG_TRUE). Otherwise an exception is raised.
The clipping according to the current image format is set via the
operator set_system('clip_region',<'true'/'false'>).
Combinations with other operatorsπ
Combinations
Possible successors
Alternatives
gen_circle, gen_region_polygon_filled, draw_ellipse
See also
Moduleπ
Foundation