Name
gen_circlegen_circleGenCirclegen_circleGenCircleGenCircle — Erzeugen eines Kreises.
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)
gen_circlegen_circleGenCirclegen_circleGenCircleGenCircle generiert einen oder mehrere Kreise, die durch
Mittelpunkt und RadiusRadiusRadiusRadiusRadiusradius beschrieben werden. Sollen mehrere
Kreise erzeugt werden, sind die Koordinaten in Form von Tupeln zu
übergeben.
gen_circlegen_circleGenCirclegen_circleGenCircleGenCircle 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 RowRowRowRowRowrow und
ColumnColumnColumnColumnColumncolumn angegebenen Koordinaten identisch sind.
Falls der Kreis über den Bildrand reicht, wird je nach Wert des
Systemflags 'clip_region' (set_systemset_systemSetSystemset_systemSetSystemSetSystem) der Kreis auf das
aktuelle Bildformat beschnitten.
Aus Geschwindigkeitsgründen kann die Ergebnisregion zusätzliche
Pixel am Rand enthalten, und einige einzelne Pixel am Rand können
fehlen. Dies kann zu einer Inkonsistenz zwischen den Operatoren
smallest_circlesmallest_circleSmallestCirclesmallest_circleSmallestCircleSmallestCircle und gen_circlegen_circleGenCirclegen_circleGenCircleGenCircle führen.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
RowRowRowRowRowrow (input_control) circle.center.y(-array) → HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (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
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
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
radius
≤
1024.0 (lin)
Restriktion: 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)
Laufzeitkomplexität: O(RadiusRadiusRadiusRadiusRadiusradius * 2)
Speicherplatzkomplexität (Byte): O(RadiusRadiusRadiusRadiusRadiusradius * 8)
Sind die Parameterwerte korrekt,
dann liefert gen_circlegen_circleGenCirclegen_circleGenCircleGenCircle 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">)set_system("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">)set_system("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_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