gen_ellipse — Erzeugen einer Ellipse.
gen_ellipse generiert eine oder mehrere Ellipsen mit dem Schwerpunkt
(Row, Column), der Orientierung Phi
und den Halbradien (Halbachsen) Radius1 und Radius2.
Der Winkel wird in Bogenmaß bzgl. der x-Achse
in mathematisch positivem Drehsinn angegeben.
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_system und
reset_obj_db.
Falls die Ellipse über den Bildrand reicht, wird je nach dem
Wert des Systemflags 'clip_region' (set_system)
die Ellipse auf das aktuelle Bildformat beschnitten.
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.
Ellipse (output_object) region(-array) → object
Erzeugte Ellipse(n).
Row (input_control) ellipse.center.y(-array) → (real / integer)
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:
1.0
≤
Row
≤
1024.0 (lin)
Minimale Schrittweite: 1.0
Empfohlene Schrittweite: 10.0
Column (input_control) ellipse.center.x(-array) → (real / integer)
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:
1.0
≤
Column
≤
1024.0 (lin)
Minimale Schrittweite: 1.0
Empfohlene Schrittweite: 10.0
Phi (input_control) ellipse.angle.rad(-array) → (real / integer)
Orientierung des längeren Radius (Radius1).
Default: 0.0
Wertevorschläge: -1.178097, -0.785398, -0.392699, 0.0, 0.392699, 0.785398, 1.178097
Wertebereich:
-1.178097
≤
Phi
≤
1.178097 (lin)
Radius1 (input_control) ellipse.radius1(-array) → (real / integer)
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
(lin)
Minimale Schrittweite: 1.0
Empfohlene Schrittweite: 10.0
Restriktion:
Radius1 > 0
Radius2 (input_control) ellipse.radius2(-array) → (real / integer)
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
(lin)
Minimale Schrittweite: 1.0
Empfohlene Schrittweite: 10.0
Restriktion:
Radius2 > 0 && Radius2 <= Radius1
read_image (Image, 'fabrik') gen_ellipse (Ellipse, 200, 200, rad(10), 160, 90) reduce_domain (Image, Ellipse, ImageReduced) dev_clear_window () dev_display (ImageReduced)
Laufzeitkomplexität: O(Radius1 * 2)
Speicherplatzkomplexität (Byte): O(Radius1 * 8)
Sind die Parameterwerte korrekt, dann liefert gen_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'>) festgelegt.
gen_circle,
gen_region_polygon_filled,
draw_ellipse
disp_ellipse,
set_shape,
smallest_circle,
reduce_domain
Foundation