Halbkreisformel verstehe ich nicht!

Gast #546046
Lesenswert?

Hallo,
in den Weiten des Internet habe ich angehängten Code gefunden den ich 
adaptiert habe und mit einem 8051 an einem Pollin Grafik LCD 128x64 
teste.
Ich verstehe da die Formel für den Kreis nicht. Wäre auch nicht so 
schlimm, aber mein Kreis (Ostern ist doch schon vorbei...) hat in 
X-Richtung einen kleineren Radius als in Y-Richtung. Sieht also aus wie 
eine Ellypse.
Kann einer die Formel erklären so daß ich sie anpassen kann damit der 
Kreis rund wird?
Die Funktion heisst glcd1_circle. Vielleicht ist die für ein 
240xwasweißich LCD?

Danke ,
Gruss

Thomas
Angehängte Dateien:
#546052
Lesenswert?

Thomas wrote:
> Kann einer die Formel erklären so daß ich sie anpassen kann damit der
> Kreis rund wird?

Hier findest du eine Herleitung des Kreis-Bresenham

http://www-lehre.informatik.uni-osnabrueck.de/~cg/2000/skript/3_4_Kreis.html


Wenn deine Kreise dann immer noch nicht rund sind:
Kann es sein, dass dein Display keine quadratische
Pixel hat: 100 Pixel in X Richtung sind 'länger' als
100 Pixel in y Richtung.

> Die Funktion heisst glcd1_circle. Vielleicht ist die für ein
> 240xwasweißich LCD?

Das sollte egal sein. Solange du quadratische Pixel hast.
#546068
Lesenswert?

Ich hab deine Implementierung des Kreis Bresenham
mal ausprobiert. Es ergebn sich wunderbare Kreise.
Dein Problem ist daher wahrscheinlich darauf
zurückzuführen, dass die Pixel nicht quadratisch sind.

Probier mal folgendes:

Mach eine horizontale Linie mit 100 Pixel
Mach eine vertikale Linie mit 100 Pixel

Und dann vergleich, ob beide Linien gleich lang sind
(optischer Eindruck, mit Lineal nachmessen).

Du wirst wohl auf einen Bresenham für Ellipsen ausweichen
müssen.
Gast #546088
Lesenswert?

Hallo Karl Heinz,
stimmt genau. Wenn ich mir die Pixe ansehe so sind sie höher als breit, 
das kann ich mit bloßem Auge sehen. Das Problem sind also die nicht 
quadratischen Pixel. Danke für den Link, ist sehr interessant.

Thomas

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren