gen_ellipse_sectorgen_ellipse_sectorGenEllipseSectorGenEllipseSectorgen_ellipse_sector (Operator)
Name
gen_ellipse_sectorgen_ellipse_sectorGenEllipseSectorGenEllipseSectorgen_ellipse_sector
— Create an ellipse sector.
Signature
Herror gen_ellipse_sector(Hobject* EllipseSector, double Row, double Column, double Phi, double Radius1, double Radius2, double StartAngle, double EndAngle)
Herror T_gen_ellipse_sector(Hobject* EllipseSector, const Htuple Row, const Htuple Column, const Htuple Phi, const Htuple Radius1, const Htuple Radius2, const Htuple StartAngle, const Htuple EndAngle)
void GenEllipseSector(HObject* EllipseSector, const HTuple& Row, const HTuple& Column, const HTuple& Phi, const HTuple& Radius1, const HTuple& Radius2, const HTuple& StartAngle, const HTuple& EndAngle)
void HRegion::HRegion(const HTuple& Row, const HTuple& Column, const HTuple& Phi, const HTuple& Radius1, const HTuple& Radius2, const HTuple& StartAngle, const HTuple& EndAngle)
void HRegion::HRegion(double Row, double Column, double Phi, double Radius1, double Radius2, double StartAngle, double EndAngle)
void HRegion::GenEllipseSector(const HTuple& Row, const HTuple& Column, const HTuple& Phi, const HTuple& Radius1, const HTuple& Radius2, const HTuple& StartAngle, const HTuple& EndAngle)
void HRegion::GenEllipseSector(double Row, double Column, double Phi, double Radius1, double Radius2, double StartAngle, double EndAngle)
static void HOperatorSet.GenEllipseSector(out HObject ellipseSector, HTuple row, HTuple column, HTuple phi, HTuple radius1, HTuple radius2, HTuple startAngle, HTuple endAngle)
public HRegion(HTuple row, HTuple column, HTuple phi, HTuple radius1, HTuple radius2, HTuple startAngle, HTuple endAngle)
public HRegion(double row, double column, double phi, double radius1, double radius2, double startAngle, double endAngle)
void HRegion.GenEllipseSector(HTuple row, HTuple column, HTuple phi, HTuple radius1, HTuple radius2, HTuple startAngle, HTuple endAngle)
void HRegion.GenEllipseSector(double row, double column, double phi, double radius1, double radius2, double startAngle, double endAngle)
def gen_ellipse_sector(row: MaybeSequence[Union[int, float]], column: MaybeSequence[Union[int, float]], phi: MaybeSequence[Union[int, float]], radius_1: MaybeSequence[Union[int, float]], radius_2: MaybeSequence[Union[int, float]], start_angle: MaybeSequence[Union[int, float]], end_angle: MaybeSequence[Union[int, float]]) -> HObject
Description
The operator gen_ellipse_sectorgen_ellipse_sectorGenEllipseSectorGenEllipseSectorgen_ellipse_sector
generates one or more ellipse
sectors with the center
(RowRowRowrowrow
, ColumnColumnColumncolumncolumn
), the orientation PhiPhiPhiphiphi
,
the half-radii Radius1Radius1Radius1radius1radius_1
and Radius2Radius2Radius2radius2radius_2
, and the start and end
angles StartAngleStartAngleStartAnglestartAnglestart_angle
and EndAngleEndAngleEndAngleendAngleend_angle
.
The angles are given in radians in mathematically positive direction.
An illustration showing this can be found in the reference of
gen_circle_sectorgen_circle_sectorGenCircleSectorGenCircleSectorgen_circle_sector
.
Note, 'rad(360)'"rad(360)""rad(360)""rad(360)""rad(360)" is equivalent to 0.
As a consequence a sector with StartAngleStartAngleStartAnglestartAnglestart_angle
= 0 and
EndAngleEndAngleEndAngleendAngleend_angle
= 'rad(360)'"rad(360)""rad(360)""rad(360)""rad(360)" results in an empty region.
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_systemget_systemGetSystemGetSystemget_system
and reset_obj_dbreset_obj_dbResetObjDbResetObjDbreset_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'"clip_region""clip_region""clip_region""clip_region" (set_systemset_systemSetSystemSetSystemset_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
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
Parameters
EllipseSectorEllipseSectorEllipseSectorellipseSectorellipse_sector
(output_object) region(-array) →
objectHRegionHObjectHObjectHobject *
Created ellipse(s).
RowRowRowrowrow
(input_control) coordinates.y(-array) →
HTupleMaybeSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
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:
1.0
≤
Row
Row
Row
row
row
≤
1024.0
(lin)
Minimum increment:
1.0
Recommended increment:
10.0
ColumnColumnColumncolumncolumn
(input_control) coordinates.x(-array) →
HTupleMaybeSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
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:
1.0
≤
Column
Column
Column
column
column
≤
1024.0
(lin)
Minimum increment:
1.0
Recommended increment:
10.0
PhiPhiPhiphiphi
(input_control) angle.rad(-array) →
HTupleMaybeSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Orientation of the longer radius (Radius1).
Default:
0.0
Suggested values:
-1.5707, -1.1781, -0.785398, -0.392699, 0.0, 0.392699, 0.785398, 1.1781, 1.5707
Value range:
-1.570796
≤
Phi
Phi
Phi
phi
phi
≤
1.570796
(lin)
Restriction:
- pi / 2 <= Phi <= pi / 2
Radius1Radius1Radius1radius1radius_1
(input_control) number(-array) →
HTupleMaybeSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
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
Radius1
Radius1
radius1
radius_1
(lin)
Minimum increment:
1.0
Recommended increment:
10.0
Restriction:
Radius1 > 0
Radius2Radius2Radius2radius2radius_2
(input_control) number(-array) →
HTupleMaybeSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
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
Radius2
Radius2
radius2
radius_2
(lin)
Minimum increment:
1.0
Recommended increment:
10.0
Restriction:
Radius2 > 0 && Radius2 <= Radius1
StartAngleStartAngleStartAnglestartAnglestart_angle
(input_control) angle.rad(-array) →
HTupleMaybeSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Start angle of the sector.
Default:
0.0
Suggested values:
0.0, 0.785398, 1.5708, 2.35619, 3.14159, 3.92699, 4.71239, 5.49779, 6.28318
Value range:
0
≤
StartAngle
StartAngle
StartAngle
startAngle
start_angle
≤
6.28318
(lin)
EndAngleEndAngleEndAngleendAngleend_angle
(input_control) angle.rad(-array) →
HTupleMaybeSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
End angle of the sector.
Default:
3.14159
Suggested values:
0.0, 0.785398, 1.5708, 2.35619, 3.14159, 3.92699, 4.71239, 5.49779, 6.28318
Value range:
0
≤
EndAngle
EndAngle
EndAngle
endAngle
end_angle
≤
6.28318
(lin)
Example (HDevelop)
read_image (Image, 'fabrik')
gen_ellipse_sector (EllipseSector, 200, 200, rad(30),\
150, 90, rad(45), rad(280))
reduce_domain (Image, EllipseSector, ImageReduced)
dev_clear_window ()
dev_display (ImageReduced)
Complexity
Runtime complexity: O(Radius1Radius1Radius1radius1radius_1
* 2)
Storage complexity (byte): O(Radius1Radius1Radius1radius1radius_1
* 8)
Result
If the parameter values are correct, the operator gen_ellipsegen_ellipseGenEllipseGenEllipsegen_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'>)set_system("clip_region",<"true"/"false">)SetSystem("clip_region",<"true"/"false">)SetSystem("clip_region",<"true"/"false">)set_system("clip_region",<"true"/"false">)
.
Possible Successors
paint_regionpaint_regionPaintRegionPaintRegionpaint_region
,
reduce_domainreduce_domainReduceDomainReduceDomainreduce_domain
Alternatives
gen_circlegen_circleGenCircleGenCirclegen_circle
,
gen_circle_sectorgen_circle_sectorGenCircleSectorGenCircleSectorgen_circle_sector
,
gen_region_polygon_filledgen_region_polygon_filledGenRegionPolygonFilledGenRegionPolygonFilledgen_region_polygon_filled
,
draw_ellipsedraw_ellipseDrawEllipseDrawEllipsedraw_ellipse
,
gen_ellipsegen_ellipseGenEllipseGenEllipsegen_ellipse
See also
disp_ellipsedisp_ellipseDispEllipseDispEllipsedisp_ellipse
,
set_shapeset_shapeSetShapeSetShapeset_shape
,
smallest_circlesmallest_circleSmallestCircleSmallestCirclesmallest_circle
,
reduce_domainreduce_domainReduceDomainReduceDomainreduce_domain
Module
Foundation