Ellipse ohne Canvas zeichnen
-
Hallo,
wie schon im Titel beschrieben würde ich gerne ohne Hilfe von Canvas eine Ellipse zeichen, also Pixel für Pixel selbst zeichnen. Wie man einen Kreis zeichnet, ist mir soweit klar, aber wie macht Canvas das bei einer Ellipse? Die ist ja eine Art zusammengestauchter Kreis.
Hat das schonmal jemand probiert?greetz KN4CK3R
-
Hi,
mit der WinAPI (ev. Brush und Pen setzen):
Ellipse( GetDC(Form1->Handle), 100, 100, 164, 64 );
mfg
kpeteredit: war wohl zu schnell mit dem Lesen Pixel für Pixel also...
hier ist eine Herleitung der Ellipsenformel :
-
Nun ich glaube, das ist eine ehrgeizige Aufgabenstellung.
nun du brauchst auch Canvas um die einzelnen Pixel zu zeichen, jedenfalls wenn du innerhalb BCB programmieren willst. Zur Konstruktion kann dir wahrscheinlich jedes Geometriehandbuch Hilfe leisten, oder das Mathe-Forum.
Wenig Hilfe, aber das umsonst
Rudi
-
rudiM schrieb:
nun du brauchst auch Canvas um die einzelnen Pixel zu zeichen, jedenfalls wenn du innerhalb BCB programmieren willst.
Solange eine Zeichenfläche da ist, die ein Handle und damit ein handle of device context hat, geht es auch in der WinApi.
Das ist mit einem Panel schon möglich.SetPixelV( GetDC(Form1->Handle), x, y, RGB( 255, 0, 0 ) );
mfg
kpeter
-
ja, da hab ich mich falsch ausgedrückt. Die Pixel setze ich schon per Canvas, nur möchte ich eben auf die Funktion zum Zeichnen der Ellipse verzichten.
Auch hab ich noch vergessen, dass die Ellipse gefüllt sein sollte, also nicht nur die Randlinie.
Ich werd mal weiter ausprobieren, danke schonmal für die Links.greetz KN4CK3R
-
Hallo
Die Pixel setze ich schon per Canvas, nur möchte ich eben auf die Funktion zum Zeichnen der Ellipse verzichten.
Das ist dann ein rein geometrisches Problem. Siehe also passendes Mathebuch oder -forum
Auch hab ich noch vergessen, dass die Ellipse gefüllt sein sollte, also nicht nur die Randlinie.
Dazu kannst du TCanvas::FloodFill benutzen. Ansonsten beim Zeichnen der Ellipse selber bereits die Innenfläche mitfüllen
bis bald
akari