| Operatoren |
gen_circle — Erzeugen eines Kreises.
gen_circle generiert einen oder mehrere Kreise, die durch Mittelpunkt und Radius beschrieben werden. Sollen mehrere Kreise erzeugt werden, sind die Koordinaten in Form von Tupeln zu übergeben.
gen_circle 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 Row und Column angegebenen Koordinaten identisch sind.
Falls der Kreis über den Bildrand reicht, wird je nach Wert des Systemflags 'clip_region' (set_system) 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_circle und gen_circle führen.
Erzeugter Kreis.
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 ≤ 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 ≤ 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 ≤ 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)
Laufzeitkomplexität: O(Radius * 2)
Speicherplatzkomplexität (Byte): O(Radius * 8)
Sind die Parameterwerte korrekt, dann liefert gen_circle 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'>) 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'>) fest, ob die leere Region ausgegeben wird.
gen_ellipse, gen_region_polygon_filled, gen_region_points, gen_region_runs, draw_circle
disp_circle, set_shape, smallest_circle, reduce_domain
Foundation
| Operatoren |