Name
gen_circle_sectorgen_circle_sectorGenCircleSectorGenCircleSector — Erzeugen eines Kreisausschnitts.
Herror gen_circle_sector(Hobject* CircleSector, double Row, double Column, double Radius, double StartAngle, double EndAngle)
Herror T_gen_circle_sector(Hobject* CircleSector, const Htuple Row, const Htuple Column, const Htuple Radius, const Htuple StartAngle, const Htuple EndAngle)
void GenCircleSector(HObject* CircleSector, const HTuple& Row, const HTuple& Column, const HTuple& Radius, const HTuple& StartAngle, const HTuple& EndAngle)
void HRegion::HRegion(const HTuple& Row, const HTuple& Column, const HTuple& Radius, const HTuple& StartAngle, const HTuple& EndAngle)
void HRegion::HRegion(double Row, double Column, double Radius, double StartAngle, double EndAngle)
void HRegion::GenCircleSector(const HTuple& Row, const HTuple& Column, const HTuple& Radius, const HTuple& StartAngle, const HTuple& EndAngle)
void HRegion::GenCircleSector(double Row, double Column, double Radius, double StartAngle, double EndAngle)
static void HOperatorSet.GenCircleSector(out HObject circleSector, HTuple row, HTuple column, HTuple radius, HTuple startAngle, HTuple endAngle)
public HRegion(HTuple row, HTuple column, HTuple radius, HTuple startAngle, HTuple endAngle)
public HRegion(double row, double column, double radius, double startAngle, double endAngle)
void HRegion.GenCircleSector(HTuple row, HTuple column, HTuple radius, HTuple startAngle, HTuple endAngle)
void HRegion.GenCircleSector(double row, double column, double radius, double startAngle, double endAngle)
gen_circle_sectorgen_circle_sectorGenCircleSectorGenCircleSectorGenCircleSector generiert einen oder mehrere Kreisschnitte, die durch
Mittelpunkt und RadiusRadiusRadiusRadiusradius beschrieben werden. Sollen mehrere
Kreise erzeugt werden, sind die Koordinaten in Form von Tupeln zu
übergeben.
gen_circle_sectorgen_circle_sectorGenCircleSectorGenCircleSectorGenCircleSector erzeugt ausschließlich symmetrische Kreise.
Dazu wird intern der Radius auf ein Vielfaches von 0.5 abgerundet.
Wird für den Radius ein ganzzahliger Wert (1, 2, 3, ...) angegeben,
so ergibt sich ein geradzahliger Durchmesser und damit ein Kreis,
der nur bezüglich eines Mittelpunktes mit Nachkommaanteil 0.5
symmetrisch sein kann. Intern werden also in diesem Fall die
Koordinaten des Mittelpunktes auf die nächstgelegenen Koordinaten
mit einem Nachkommaanteil von 0.5 angepasst. Hierbei werden
ganzzahlige Koordinaten auf die nächstkleineren Koordinaten mit
einem Nachkommaanteil von 0.5 abgerundet. Bei ungeradzahligem
Durchmesser (Radius = 1.5, 2.5, 3.5, ...) erhält man einen Kreis,
der nur bezüglich eines Mittelpunktes mit ganzzahligen Koordinaten
symmetrisch sein kann. Intern werden also in diesem Fall die
Koordinaten des Mittelpunktes auf die nächstgelegenen ganzzahligen
Koordinaten gerundet. Es ist zu beachten, dass durch den obigen
Algorithmus Kreise mit einem geradzahliger Durchmesser nicht
in Kreisen mit dem nächstgrößeren ungeradzahligem Durchmesser
enthalten sein müssen, selbst wenn die in RowRowRowRowrow und
ColumnColumnColumnColumncolumn angegebenen Koordinaten identisch sind.
Falls der Kreis über den Bildrand reicht, wird je nach Wert des
Systemflags 'clip_region' (set_systemset_systemSetSystemSetSystemSetSystem) der Kreis auf das
aktuelle Bildformat beschnitten.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Erzeugter Kreisausschnitt.
RowRowRowRowrow (input_control) coordinates.y(-array) → HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Zeilenindex des Schwerpunktes.
Defaultwert: 200.0
Wertevorschläge: 0.0, 10.0, 50.0, 100.0, 200.0, 300.0
Typischer Wertebereich: 1.0
≤
Row
Row
Row
Row
row
≤
1024.0 (lin)
Minimale Schrittweite: 1.0
Empfohlene Schrittweite: 10.0
Spaltenindex des Schwerpunktes.
Defaultwert: 200.0
Wertevorschläge: 0.0, 10.0, 50.0, 100.0, 200.0, 300.0
Typischer Wertebereich: 1.0
≤
Column
Column
Column
Column
column
≤
1024.0 (lin)
Minimale Schrittweite: 1.0
Empfohlene Schrittweite: 10.0
Radius des Kreises.
Defaultwert: 100.5
Wertevorschläge: 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
Typischer Wertebereich: 1.0
≤
Radius
Radius
Radius
Radius
radius
≤
1024.0 (lin)
Minimale Schrittweite: 1.0
Empfohlene Schrittweite: 10.0
Restriktion: Radius > 0.0
Startwinkel des Kreisausschnittes.
Defaultwert: 0.0
Wertevorschläge: 0.0, 0.785398, 1.5708, 2.35619, 3.14159, 3.92699, 4.71239, 5.49779, 6.28318
Typischer Wertebereich: 0
≤
StartAngle
StartAngle
StartAngle
StartAngle
startAngle
≤
6.28318 (lin)
Restriktion: 0 <= StartAngle && StartAngle <= 2 * pi
Endwinkel des Kreisausschnittes.
Defaultwert: 3.14159
Wertevorschläge: 0.0, 0.785398, 1.5708, 2.35619, 3.14159, 3.92699, 4.71239, 5.49779, 6.28318
Typischer Wertebereich: 0
≤
EndAngle
EndAngle
EndAngle
EndAngle
endAngle
≤
6.28318 (lin)
Restriktion: 0 <= EndAngle && EndAngle <= 2 * pi
read_image(Image,'fabrik')
gen_circle_sector(CircleSector,300.0,200.0,150.5,0,rad(120))
reduce_domain(Image,CircleSector,Mask)
dev_clear_window ()
dev_display (Mask)
open_window(0,0,-1,-1,"root","visible","",&WindowHandle);
read_image(&Image,"montery");
gen_circle_sector(&CircleSector,300.0,200.0,150.5,0,rad(120));
reduce_domain(Image,CircleSector,Mask);
disp_color(Mask,WindowHandle);
read_image(Image,'fabrik')
gen_circle_sector(CircleSector,300.0,200.0,150.5,0,rad(120))
reduce_domain(Image,CircleSector,Mask)
dev_clear_window ()
dev_display (Mask)
read_image(Image,'fabrik')
gen_circle_sector(CircleSector,300.0,200.0,150.5,0,rad(120))
reduce_domain(Image,CircleSector,Mask)
dev_clear_window ()
dev_display (Mask)
read_image(Image,'fabrik')
gen_circle_sector(CircleSector,300.0,200.0,150.5,0,rad(120))
reduce_domain(Image,CircleSector,Mask)
dev_clear_window ()
dev_display (Mask)
Laufzeitkomplexität: O(RadiusRadiusRadiusRadiusradius * 2)
Speicherplatzkomplexität (Byte): O(RadiusRadiusRadiusRadiusradius * 8)
Sind die Parameterwerte korrekt,
dann liefert gen_circlegen_circleGenCircleGenCircleGenCircle 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">)SetSystem("clip_region",<"true"/"false">) festgelegt.
Entsteht durch Clipping (der Kreis liegt völlig außerhalb des
Bildformats) eine leere Region, dann legt
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">) fest,
ob die leere Region ausgegeben wird.
paint_regionpaint_regionPaintRegionPaintRegionPaintRegion,
reduce_domainreduce_domainReduceDomainReduceDomainReduceDomain
gen_ellipsegen_ellipseGenEllipseGenEllipseGenEllipse,
gen_ellipse_sectorgen_ellipse_sectorGenEllipseSectorGenEllipseSectorGenEllipseSector,
gen_region_polygon_filledgen_region_polygon_filledGenRegionPolygonFilledGenRegionPolygonFilledGenRegionPolygonFilled,
gen_region_pointsgen_region_pointsGenRegionPointsGenRegionPointsGenRegionPoints,
gen_region_runsgen_region_runsGenRegionRunsGenRegionRunsGenRegionRuns,
draw_circledraw_circleDrawCircleDrawCircleDrawCircle
disp_circledisp_circleDispCircleDispCircleDispCircle,
disp_regiondisp_regionDispRegionDispRegionDispRegion,
set_shapeset_shapeSetShapeSetShapeSetShape,
smallest_circlesmallest_circleSmallestCircleSmallestCircleSmallestCircle,
reduce_domainreduce_domainReduceDomainReduceDomainReduceDomain
Foundation