draw_ellipseT_draw_ellipseDrawEllipseDrawEllipsedraw_ellipse (Operator)
Name
draw_ellipseT_draw_ellipseDrawEllipseDrawEllipsedraw_ellipse — Interaktives Erstellen einer Ellipse.
Signatur
def draw_ellipse(window_handle: HHandle) -> Tuple[float, float, float, float, float]
Beschreibung
draw_ellipsedraw_ellipseDrawEllipseDrawEllipsedraw_ellipse liefert die Parameter für eine beliebig orientierte
Ellipse, die interaktiv durch den Benutzer im Fenster erzeugt
worden ist.
Die zu erzeugende Ellipse wird durch ihren Mittelpunkt, ihre zwei Halbachsen
und den Winkel der ersten Halbachse zur horizontalen Koordinatenachse
beschrieben.
Für die Erzeugung der Ellipse wird mit der linken Maustaste der Mittelpunkt
der Ellipse festgelegt. Während die Taste gedrückt bleibt, kann die Länge
(Radius1Radius1Radius1radius1radius_1) und die Orientierung (PhiPhiPhiphiphi) der ersten
Halbachse festgelegt werden.
Dabei wird für die zweite Halbachse vorläufig eine Default-Länge
verwendet, die anschließend aber noch verändert werden kann.
Nach einem erneuten Mausklick in die Mitte der erzeugten Ellipse, kann diese
beliebig verschoben werden. Mit einem Klick in die Nähe eines Scheitels
kann dieser „angefasst“ werden, um die Länge der zugehörigen Halbachse zu
verändern. Die Orientierung kann nur verändert werden, wenn ein Scheitel
der ersten Halbachse angefasst wird.
Ein Klick mit der rechten Maustaste beendet die Prozedur.
Die Ellipse ist nach Beendigung der Prozedur nicht mehr auf dem Fenster
sichtbar.
Achtung
Für die Nutzung des Zeichenoperators in einem Puffer-Fenster muss die
Anwendung Maus-Events senden. Der Zeichenoperator muss
dabei in einem anderen Thread ausgeführt 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
WindowHandleWindowHandleWindowHandlewindowHandlewindow_handle (input_control) window → HWindow, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Fenster-Handle.
RowRowRowrowrow (output_control) ellipse.center.y → HTuplefloatHTupleHtuple (real) (double) (double) (double)
Zeilenindex des Mittelpunktes.
ColumnColumnColumncolumncolumn (output_control) ellipse.center.x → HTuplefloatHTupleHtuple (real) (double) (double) (double)
Spaltenindex des Mittelpunktes.
PhiPhiPhiphiphi (output_control) ellipse.angle.rad → HTuplefloatHTupleHtuple (real) (double) (double) (double)
Orientierung der ersten Halbachse in Bogenmaß.
Radius1Radius1Radius1radius1radius_1 (output_control) ellipse.radius1 → HTuplefloatHTupleHtuple (real) (double) (double) (double)
Erste Halbachse.
Radius2Radius2Radius2radius2radius_2 (output_control) ellipse.radius2 → HTuplefloatHTupleHtuple (real) (double) (double) (double)
Zweite Halbachse.
Beispiel (HDevelop)
read_image(Image,'monkey')
draw_ellipse(WindowHandle,Row,Column,Phi,Radius1,Radius2)
gen_ellipse(Ellipse,Row,Column,Phi,Radius1,Radius2)
reduce_domain(Image,Ellipse,GrayEllipse)
sobel_amp(GrayEllipse,Sobel,'sum_abs',3)
dev_display(Sobel)
Beispiel (C)
read_image(&Image,"monkey");
draw_ellipse(WindowHandle,&Row,&Column,&Phi,&Radius1,&Radius2);
gen_ellipse(&Ellipse,Row,Column,Phi,Radius1,Radius2);
reduce_domain(Image,Ellipse,&GrayEllipse);
sobel_amp(GrayEllipse,&Sobel,"sum_abs",3);
disp_image(Sobel,WindowHandle);
Beispiel (HDevelop)
read_image(Image,'monkey')
draw_ellipse(WindowHandle,Row,Column,Phi,Radius1,Radius2)
gen_ellipse(Ellipse,Row,Column,Phi,Radius1,Radius2)
reduce_domain(Image,Ellipse,GrayEllipse)
sobel_amp(GrayEllipse,Sobel,'sum_abs',3)
dev_display(Sobel)
Beispiel (HDevelop)
read_image(Image,'monkey')
draw_ellipse(WindowHandle,Row,Column,Phi,Radius1,Radius2)
gen_ellipse(Ellipse,Row,Column,Phi,Radius1,Radius2)
reduce_domain(Image,Ellipse,GrayEllipse)
sobel_amp(GrayEllipse,Sobel,'sum_abs',3)
dev_display(Sobel)
Ergebnis
draw_ellipsedraw_ellipseDrawEllipseDrawEllipsedraw_ellipse liefert den Wert 2 (
H_MSG_TRUE)
, falls das Fenster gültig
ist. Ansonsten wird eine Fehlerbehandlung durchgeführt.
Vorgänger
open_windowopen_windowOpenWindowOpenWindowopen_window
Nachfolger
reduce_domainreduce_domainReduceDomainReduceDomainreduce_domain,
disp_regiondisp_regionDispRegionDispRegiondisp_region,
set_coloredset_coloredSetColoredSetColoredset_colored,
set_line_widthset_line_widthSetLineWidthSetLineWidthset_line_width,
set_drawset_drawSetDrawSetDrawset_draw
Alternativen
draw_ellipse_moddraw_ellipse_modDrawEllipseModDrawEllipseModdraw_ellipse_mod,
draw_circledraw_circleDrawCircleDrawCircledraw_circle,
draw_regiondraw_regionDrawRegionDrawRegiondraw_region
Siehe auch
gen_ellipsegen_ellipseGenEllipseGenEllipsegen_ellipse,
draw_rectangle1draw_rectangle1DrawRectangle1DrawRectangle1draw_rectangle1,
draw_rectangle2draw_rectangle2DrawRectangle2DrawRectangle2draw_rectangle2,
draw_polygondraw_polygonDrawPolygonDrawPolygondraw_polygon
Modul
Foundation