draw_ellipseT_draw_ellipseDrawEllipseDrawEllipsedraw_ellipse (Operator)

Name

draw_ellipseT_draw_ellipseDrawEllipseDrawEllipsedraw_ellipse — Interaktives Erstellen einer Ellipse.

Signatur

draw_ellipse( : : WindowHandle : Row, Column, Phi, Radius1, Radius2)

Herror T_draw_ellipse(const Htuple WindowHandle, Htuple* Row, Htuple* Column, Htuple* Phi, Htuple* Radius1, Htuple* Radius2)

void DrawEllipse(const HTuple& WindowHandle, HTuple* Row, HTuple* Column, HTuple* Phi, HTuple* Radius1, HTuple* Radius2)

void HWindow::DrawEllipse(double* Row, double* Column, double* Phi, double* Radius1, double* Radius2) const

static void HOperatorSet.DrawEllipse(HTuple windowHandle, out HTuple row, out HTuple column, out HTuple phi, out HTuple radius1, out HTuple radius2)

void HWindow.DrawEllipse(out double row, out double column, out double phi, out double radius1, out double radius2)

def draw_ellipse(window_handle: HHandle) -> Tuple[float, float, float, float, float]

Beschreibung

draw_ellipsedraw_ellipseDrawEllipseDrawEllipseDrawEllipsedraw_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 (Radius1Radius1Radius1Radius1radius1radius_1) und die Orientierung (PhiPhiPhiPhiphiphi) 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. Unter macOS kann draw_ellipsedraw_ellipseDrawEllipseDrawEllipseDrawEllipsedraw_ellipse auch durch Drücken der Escape-Taste beendet werden. 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

Parameter

WindowHandleWindowHandleWindowHandleWindowHandlewindowHandlewindow_handle (input_control)  window HWindow, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Fenster-Handle.

RowRowRowRowrowrow (output_control)  ellipse.center.y HTuplefloatHTupleHtuple (real) (double) (double) (double)

Zeilenindex des Mittelpunktes.

ColumnColumnColumnColumncolumncolumn (output_control)  ellipse.center.x HTuplefloatHTupleHtuple (real) (double) (double) (double)

Spaltenindex des Mittelpunktes.

PhiPhiPhiPhiphiphi (output_control)  ellipse.angle.rad HTuplefloatHTupleHtuple (real) (double) (double) (double)

Orientierung der ersten Halbachse in Bogenmaß.

Radius1Radius1Radius1Radius1radius1radius_1 (output_control)  ellipse.radius1 HTuplefloatHTupleHtuple (real) (double) (double) (double)

Erste Halbachse.

Radius2Radius2Radius2Radius2radius2radius_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)

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_ellipseDrawEllipseDrawEllipseDrawEllipsedraw_ellipse liefert den Wert TRUE, falls das Fenster gültig und der benötigte Zeichenmodus (siehe set_insertset_insertSetInsertSetInsertSetInsertset_insert) verfügbar ist. Ansonsten wird eine Fehlerbehandlung durchgeführt.

Vorgänger

open_windowopen_windowOpenWindowOpenWindowOpenWindowopen_window

Nachfolger

reduce_domainreduce_domainReduceDomainReduceDomainReduceDomainreduce_domain, disp_regiondisp_regionDispRegionDispRegionDispRegiondisp_region, set_coloredset_coloredSetColoredSetColoredSetColoredset_colored, set_line_widthset_line_widthSetLineWidthSetLineWidthSetLineWidthset_line_width, set_drawset_drawSetDrawSetDrawSetDrawset_draw, set_insertset_insertSetInsertSetInsertSetInsertset_insert

Alternativen

draw_ellipse_moddraw_ellipse_modDrawEllipseModDrawEllipseModDrawEllipseModdraw_ellipse_mod, draw_circledraw_circleDrawCircleDrawCircleDrawCircledraw_circle, draw_regiondraw_regionDrawRegionDrawRegionDrawRegiondraw_region

Siehe auch

gen_ellipsegen_ellipseGenEllipseGenEllipseGenEllipsegen_ellipse, draw_rectangle1draw_rectangle1DrawRectangle1DrawRectangle1DrawRectangle1draw_rectangle1, draw_rectangle2draw_rectangle2DrawRectangle2DrawRectangle2DrawRectangle2draw_rectangle2, draw_polygondraw_polygonDrawPolygonDrawPolygonDrawPolygondraw_polygon, set_insertset_insertSetInsertSetInsertSetInsertset_insert

Modul

Foundation