Forum: Mikrocontroller und Digitale Elektronik Wie bekomme ich einen schoenen Kreis aufs LCD


von Jochen (Gast)


Lesenswert?

Also ich hab ein LC-Display der mit nem M16 betrieben wird. Linien und 
Rechtecke und Texte gehen. Aber mit dem Kreis hab ich so meine Probleme. 
So ganz rund schaut er halt nicht aus.
Hat irgendjemand vielleicht schon eine Funktion in C geschrieben die nen 
schoenen Kreis zeichnet.

Danke
Jochen

von Andre Adrian (Gast)


Lesenswert?

Hallo Jochen,

das Problem hatte ich 'damals' auch schon mal, das lag aber einfach 
daran das die Pixel nicht gleich hoch wie breit waren...

Gruss

Andre

von Tipper (Gast)


Lesenswert?

Dein LC-Display muß ein Grafik-Display sein, alpha-numerische Displays 
sind nur für Buchstaben und Zahlen.

von Jochen (Gast)


Lesenswert?

Tripper:
Das ist schon ein Grafik display. Hast du vielleicht eine Funktion die 
einen Kreis macht

von thkaiser (Gast)


Lesenswert?

Einen Kreis kann man auf zweierlei Methoden beschreiben:

A) X=SIN(a)*R ; Y=COS(a)*R
X,Y sind die Koordinaten der zu setzenden Punkte, a läßt man von 0..360° 
laufen. Da aber eine Sinus-Funktion nicht immer zur Verfügung steht, 
kann man es auch mit

B) R^2 = X^2+Y^2 versuchen. Allerdings muß man hier 4 Quadranten 
durchlaufen und die Formel entsprechend umstellen. Berechnungsroutinen 
fürs Quadrat oder die Wurzel gibts sogar in Assembler.

Man kann es sich auch vereinfachen, indem man nur einen Viertel-Kreis 
berechnet und dann jeweils über X- und Y-Achse spiegelt - geht 
schneller.

Noch ein kleiner Tipp am Rande: Es reicht, wenn man ca. 90 Punkte des 
Kreises berechnet und diese Punkte via "LINE" miteinander verbindet.
Schlagt mich aber nicht, wenn die o.g. Formeln nicht ganz korrekt sind - 
zuletzt habe ich Kreise "von Hand" mit dem C-64 programmiert.... ist 
schon ne Weile her ;-)

von Sven (Gast)


Lesenswert?

@thkaiser

Kannst Du eine Quelle für gut umgesetzte Berechnungsroutinen für Quadrat 
und Wurzel in Assembler angeben? Ich will zwar keine Kreise malen, es 
würde mich aber sehr interessieren.

Danke, Sven

von thkaiser (Gast)


Lesenswert?

Sorry, kann ich nicht mit dienen. Aber Google sollte einiges ausspucken.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.