gen_ellipse_sectorgen_ellipse_sectorGenEllipseSectorGenEllipseSectorgen_ellipse_sector (Operator)
Name
gen_ellipse_sectorgen_ellipse_sectorGenEllipseSectorGenEllipseSectorgen_ellipse_sector — Erzeugen eines Ellipsenausschnittes.
Signatur
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
Beschreibung
gen_ellipse_sectorgen_ellipse_sectorGenEllipseSectorGenEllipseSectorgen_ellipse_sector generiert eine oder mehrere Ellipsen mit dem
Schwerpunkt (RowRowRowrowrow, ColumnColumnColumncolumncolumn), der Orientierung PhiPhiPhiphiphi,
den Halbradien Radius1Radius1Radius1radius1radius_1 und Radius2Radius2Radius2radius2radius_2 und den Start- und
End-winkeln StartAngleStartAngleStartAnglestartAnglestart_angle und EndAngleEndAngleEndAngleendAngleend_angle.
Der Winkel wird in Bogenmaß in mathematisch positivem Drehsinn angegeben.
Eine Illustration zu den
Winkeln kann bei dem Operator gen_circle_sectorgen_circle_sectorGenCircleSectorGenCircleSectorgen_circle_sector gefunden werden.
Der Wert 'rad(360)'"rad(360)""rad(360)""rad(360)""rad(360)" ist äquivalent zu 0.
Entsprechend ergibt ein Sektor mit StartAngleStartAngleStartAnglestartAnglestart_angle = 0 und
EndAngleEndAngleEndAngleendAngleend_angle = 'rad(360)'"rad(360)""rad(360)""rad(360)""rad(360)" eine leere Region.
Es kann mehr als eine Region erzeugt werden,
indem Tupel von Parameterwerten übergeben werden.
Der Schwerpunkt muss innerhalb der Bildkoordinaten liegen.
Das Koordinatensystem läuft von (0,0) (linkes oberes Eck) bis
(Width-1,Height-1). Siehe hierzu auch get_systemget_systemGetSystemGetSystemget_system und
reset_obj_dbreset_obj_dbResetObjDbResetObjDbreset_obj_db.
Falls die Ellipse über den Bildrand reicht, wird je nach dem
Wert des Systemflags 'clip_region'"clip_region""clip_region""clip_region""clip_region" (set_systemset_systemSetSystemSetSystemset_system)
die Ellipse auf das aktuelle Bildformat beschnitten.
Parameter-Broadcasting
Dieser Operator unterstützt Parameter-Broadcasting.
Das bedeutet, dass für jeden Parameter ein Tupel der Länge
1 oder N übergeben werden kann.
Tupel der Länge 1 werden wiederholt verwendet,
so dass immer N Elemente erzeugt und zurückgegeben werden.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Parameter
EllipseSectorEllipseSectorEllipseSectorellipseSectorellipse_sector (output_object) region(-array) → objectHRegionHObjectHObjectHobject *
Erzeugte Ellipse(n).
RowRowRowrowrow (input_control) coordinates.y(-array) → HTupleMaybeSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Zeilenindex des Schwerpunktes.
Default:
200.0
Wertevorschläge:
0.0, 10.0, 20.0, 50.0, 100.0, 256.0, 300.0, 400.0
Wertebereich:
Row
Row
Row
row
row
(lin)
Minimale Schrittweite:
1.0
Empfohlene Schrittweite:
10.0
ColumnColumnColumncolumncolumn (input_control) coordinates.x(-array) → HTupleMaybeSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Spaltenindex des Schwerpunktes.
Default:
200.0
Wertevorschläge:
0.0, 10.0, 20.0, 50.0, 100.0, 256.0, 300.0, 400.0
Wertebereich:
Column
Column
Column
column
column
(lin)
Minimale Schrittweite:
1.0
Empfohlene Schrittweite:
10.0
PhiPhiPhiphiphi (input_control) angle.rad(-array) → HTupleMaybeSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Orientierung des längeren Radius (Radius1).
Default:
0.0
Wertevorschläge:
-1.5707, -1.1781, -0.785398, -0.392699, 0.0, 0.392699, 0.785398, 1.1781, 1.5707
Wertebereich:
-1.570796
≤
Phi
Phi
Phi
phi
phi
≤
1.570796 (lin)
Restriktion:
- 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)
Längerer Radius.
Default:
100.0
Wertevorschläge:
2.0, 5.0, 10.0, 20.0, 50.0, 100.0, 256.0, 300.0, 400.0
Wertebereich:
Radius1
Radius1
Radius1
radius1
radius_1
(lin)
Minimale Schrittweite:
1.0
Empfohlene Schrittweite:
10.0
Restriktion:
Radius1 > 0
Radius2Radius2Radius2radius2radius_2 (input_control) number(-array) → HTupleMaybeSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Kürzerer Radius.
Default:
60.0
Wertevorschläge:
1.0, 2.0, 4.0, 5.0, 10.0, 20.0, 50.0, 100.0, 256.0, 300.0, 400.0
Wertebereich:
Radius2
Radius2
Radius2
radius2
radius_2
(lin)
Minimale Schrittweite:
1.0
Empfohlene Schrittweite:
10.0
Restriktion:
Radius2 > 0
StartAngleStartAngleStartAnglestartAnglestart_angle (input_control) angle.rad(-array) → HTupleMaybeSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Startwinkel des Ellipsenausschnittes.
Default:
0.0
Wertevorschläge:
0.0, 0.785398, 1.5708, 2.35619, 3.14159, 3.92699, 4.71239, 5.49779, 6.28318
Wertebereich:
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)
Endwinkel des Ellipsenausschnittes.
Default:
3.14159
Wertevorschläge:
0.0, 0.785398, 1.5708, 2.35619, 3.14159, 3.92699, 4.71239, 5.49779, 6.28318
Wertebereich:
0
≤
EndAngle
EndAngle
EndAngle
endAngle
end_angle
≤
6.28318 (lin)
Beispiel (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)
Komplexität
Laufzeitkomplexität: O(Radius1Radius1Radius1radius1radius_1 * 2)
Speicherplatzkomplexität (Byte): O(Radius1Radius1Radius1radius1radius_1 * 8)
Ergebnis
Sind die Parameterwerte korrekt, dann liefert gen_ellipsegen_ellipseGenEllipseGenEllipsegen_ellipse
den Wert 2 (
H_MSG_TRUE)
. Andernfalls wird eine Fehlerbehandlung durchgeführt.
Das Clipping am aktuellen Bildformat wird durch
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">) festgelegt.
Nachfolger
paint_regionpaint_regionPaintRegionPaintRegionpaint_region,
reduce_domainreduce_domainReduceDomainReduceDomainreduce_domain
Alternativen
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
Siehe auch
disp_ellipsedisp_ellipseDispEllipseDispEllipsedisp_ellipse,
set_shapeset_shapeSetShapeSetShapeset_shape,
smallest_circlesmallest_circleSmallestCircleSmallestCirclesmallest_circle,
reduce_domainreduce_domainReduceDomainReduceDomainreduce_domain
Modul
Foundation