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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.