gen_circlegen_circleGenCircleGenCirclegen_circle (算子)

名称

gen_circlegen_circleGenCircleGenCirclegen_circle — 创建一个圆。

签名

gen_circle( : Circle : Row, Column, Radius : )

Herror gen_circle(Hobject* Circle, double Row, double Column, double Radius)

Herror T_gen_circle(Hobject* Circle, const Htuple Row, const Htuple Column, const Htuple Radius)

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)

def gen_circle(row: MaybeSequence[Union[int, float]], column: MaybeSequence[Union[int, float]], radius: MaybeSequence[Union[int, float]]) -> HObject

描述

算子 gen_circlegen_circleGenCircleGenCircleGenCirclegen_circle 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_circleGenCircleGenCircleGenCirclegen_circle 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'"clip_region""clip_region""clip_region""clip_region""clip_region" is set to 'true'"true""true""true""true""true" (set_systemset_systemSetSystemSetSystemSetSystemset_system).

注意

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_circleSmallestCircleSmallestCircleSmallestCirclesmallest_circle and gen_circlegen_circleGenCircleGenCircleGenCirclegen_circle.

执行信息

参数

CircleCircleCircleCirclecirclecircle (输出对象)  region(-array) objectHRegionHObjectHRegionHobject *

Generated circle.

RowRowRowRowrowrow (输入控制)  circle.center.y(-array) HTupleMaybeSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Line index of center.

默认值: 200.0

建议值: 0.0, 10.0, 50.0, 100.0, 200.0, 300.0

值范围: 1.0 ≤ Row Row Row Row row row ≤ 1024.0 (lin)

最小增量: 1.0

建议增量: 10.0

ColumnColumnColumnColumncolumncolumn (输入控制)  circle.center.x(-array) HTupleMaybeSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Column index of center.

默认值: 200.0

建议值: 0.0, 10.0, 50.0, 100.0, 200.0, 300.0

值范围: 1.0 ≤ Column Column Column Column column column ≤ 1024.0 (lin)

最小增量: 1.0

建议增量: 10.0

RadiusRadiusRadiusRadiusradiusradius (输入控制)  circle.radius(-array) HTupleMaybeSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Radius of circle.

默认值: 100.5

建议值: 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

值范围: Radius Radius Radius Radius radius radius (lin)

限制: Radius > 0.0

示例(HDevelop)

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)

结果

如果参数值正确,算子 gen_circlegen_circleGenCircleGenCircleGenCirclegen_circle 返回值 2 ( H_MSG_TRUE )。否则将抛出异常。 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">)SetSystem("clip_region",<"true"/"false">)SetSystem("clip_region",<"true"/"false">)set_system("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">)SetSystem("store_empty_region",<"true"/"false">)SetSystem("store_empty_region",<"true"/"false">)set_system("store_empty_region",<"true"/"false">) determines whether the empty region is put out.

可能的后继

paint_regionpaint_regionPaintRegionPaintRegionPaintRegionpaint_region, reduce_domainreduce_domainReduceDomainReduceDomainReduceDomainreduce_domain

替代

gen_ellipsegen_ellipseGenEllipseGenEllipseGenEllipsegen_ellipse, gen_region_polygon_filledgen_region_polygon_filledGenRegionPolygonFilledGenRegionPolygonFilledGenRegionPolygonFilledgen_region_polygon_filled, gen_region_pointsgen_region_pointsGenRegionPointsGenRegionPointsGenRegionPointsgen_region_points, gen_region_runsgen_region_runsGenRegionRunsGenRegionRunsGenRegionRunsgen_region_runs, draw_circledraw_circleDrawCircleDrawCircleDrawCircledraw_circle

另见

disp_circledisp_circleDispCircleDispCircleDispCircledisp_circle, set_shapeset_shapeSetShapeSetShapeSetShapeset_shape, smallest_circlesmallest_circleSmallestCircleSmallestCircleSmallestCirclesmallest_circle, reduce_domainreduce_domainReduceDomainReduceDomainReduceDomainreduce_domain

模块

基础