Name
gen_circlegen_circleGenCirclegen_circleGenCircleGenCircle — Create a circle.
void GenCircle(HObject* Circle, const HTuple& Row, const HTuple& Column, const HTuple& Radius)
void HRegion::HRegion(const HTuple& Row, const HTuple& Column, const HTuple& Radius)
void HRegion::HRegion(double Row, double Column, double Radius)
void HRegion::GenCircle(const HTuple& Row, const HTuple& Column, const HTuple& Radius)
void HRegion::GenCircle(double Row, double Column, double Radius)
static void HOperatorSet.GenCircle(out HObject circle, HTuple row, HTuple column, HTuple radius)
public HRegion(HTuple row, HTuple column, HTuple radius)
public HRegion(double row, double column, double radius)
void HRegion.GenCircle(HTuple row, HTuple column, HTuple radius)
void HRegion.GenCircle(double row, double column, double radius)
The operator gen_circlegen_circleGenCirclegen_circleGenCircleGenCircle generates one or more circles
described by the center and RadiusRadiusRadiusRadiusRadiusradius. If several circles
shall be generated the coordinates must be passed in the form of
tuples.
gen_circlegen_circleGenCirclegen_circleGenCircleGenCircle only creates symmetric circles. To achieve this,
the radius is internally rounded down to a multiple of 0.5. If an
integer number is specified for the radius (i.e., 1, 2, 3, ...) an
even diameter is obtained, and hence the circle can only be
symmetric with respect to a center with coordinates that have a
fractional part of 0.5. Consequently, internally the coordinates of
the center are adapted to the closest coordinates that have a
fractional part of 0.5. Here, integer coordinates are rounded down
to the next smaller values with a fractional part of 0.5. For odd
diameters (i.e., radius = 1.5, 2.5, 3.5, ...), the circle can only
be symmetric with respect to a center with integer coordinates.
Hence, internally the coordinates of the center are rounded to the
nearest integer coordinates. It should be noted that the above
algorithm may lead to the fact that circles with an even diameter
are not contained in circles with the next larger odd
diameter, even if the coordinates specified in RowRowRowRowRowrow and
ColumnColumnColumnColumnColumncolumn are identical.
If the circle extends beyond the image edge it is clipped to the
current image format if the value of the system flag 'clip_region'
is set to 'true' (set_systemset_systemSetSystemset_systemSetSystemSetSystem).
For speed reasons, the resulting region may contain additional
pixels at the border and some individual pixels at the border may
be missing. This may lead to an inconsistency between the
operators smallest_circlesmallest_circleSmallestCirclesmallest_circleSmallestCircleSmallestCircle and gen_circlegen_circleGenCirclegen_circleGenCircleGenCircle.
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
RowRowRowRowRowrow (input_control) circle.center.y(-array) → HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)
Line index of center.
Default value: 200.0
Suggested values: 0.0, 10.0, 50.0, 100.0, 200.0, 300.0
Typical range of values: 1.0
≤
Row
Row
Row
Row
Row
row
≤
1024.0 (lin)
Minimum increment: 1.0
Recommended increment: 10.0
Column index of center.
Default value: 200.0
Suggested values: 0.0, 10.0, 50.0, 100.0, 200.0, 300.0
Typical range of values: 1.0
≤
Column
Column
Column
Column
Column
column
≤
1024.0 (lin)
Minimum increment: 1.0
Recommended increment: 10.0
Radius of circle.
Default value: 100.5
Suggested values: 1.0, 1.5, 2.0, 2.5, 3, 3.5, 4, 4.5, 5.5, 6.5, 7.5, 9.5, 11.5, 15.5, 20.5, 25.5, 31.5, 50.5
Typical range of values: 1.0
≤
Radius
Radius
Radius
Radius
Radius
radius
≤
1024.0 (lin)
Restriction: Radius > 0.0
read_image(Image,'fabrik')
gen_circle(Circle,300.0,200.0,150.5)
reduce_domain(Image,Circle,Mask)
dev_clear_window ()
dev_display (Mask)
open_window(0,0,-1,-1,"root","visible","",&WindowHandle);
read_image(&Image,"montery");
gen_circle(&Circle,300.0,200.0,150.5);
reduce_domain(Image,Circle,Mask);
disp_color(Mask,WindowHandle);
read_image(Image,'fabrik')
gen_circle(Circle,300.0,200.0,150.5)
reduce_domain(Image,Circle,Mask)
dev_clear_window ()
dev_display (Mask)
read_image(Image,'fabrik')
gen_circle(Circle,300.0,200.0,150.5)
reduce_domain(Image,Circle,Mask)
dev_clear_window ()
dev_display (Mask)
read_image(Image,'fabrik')
gen_circle(Circle,300.0,200.0,150.5)
reduce_domain(Image,Circle,Mask)
dev_clear_window ()
dev_display (Mask)
read_image(Image,'fabrik')
gen_circle(Circle,300.0,200.0,150.5)
reduce_domain(Image,Circle,Mask)
dev_clear_window ()
dev_display (Mask)
Runtime complexity: O(RadiusRadiusRadiusRadiusRadiusradius * 2)
Storage complexity (byte): O(RadiusRadiusRadiusRadiusRadiusradius * 8)
If the parameter values are correct,
the operator gen_circlegen_circleGenCirclegen_circleGenCircleGenCircle 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'>)set_system("clip_region",<"true"/"false">)SetSystem("clip_region",<"true"/"false">)set_system("clip_region",<"true"/"false">)SetSystem("clip_region",<"true"/"false">)SetSystem("clip_region",<"true"/"false">).
If an empty region is created by clipping (the circle is
completely outside of the image format) the operator
set_system('store_empty_region',<'true'/'false'>)set_system("store_empty_region",<"true"/"false">)SetSystem("store_empty_region",<"true"/"false">)set_system("store_empty_region",<"true"/"false">)SetSystem("store_empty_region",<"true"/"false">)SetSystem("store_empty_region",<"true"/"false">)
determines whether the empty region is put out.
paint_regionpaint_regionPaintRegionpaint_regionPaintRegionPaintRegion,
reduce_domainreduce_domainReduceDomainreduce_domainReduceDomainReduceDomain
gen_ellipsegen_ellipseGenEllipsegen_ellipseGenEllipseGenEllipse,
gen_region_polygon_filledgen_region_polygon_filledGenRegionPolygonFilledgen_region_polygon_filledGenRegionPolygonFilledGenRegionPolygonFilled,
gen_region_pointsgen_region_pointsGenRegionPointsgen_region_pointsGenRegionPointsGenRegionPoints,
gen_region_runsgen_region_runsGenRegionRunsgen_region_runsGenRegionRunsGenRegionRuns,
draw_circledraw_circleDrawCircledraw_circleDrawCircleDrawCircle
disp_circledisp_circleDispCircledisp_circleDispCircleDispCircle,
set_shapeset_shapeSetShapeset_shapeSetShapeSetShape,
smallest_circlesmallest_circleSmallestCirclesmallest_circleSmallestCircleSmallestCircle,
reduce_domainreduce_domainReduceDomainreduce_domainReduceDomainReduceDomain
Foundation