Analoges Zeigerinstrument auf LCD?

Gast #646247
Ich habe ein 128x64 Display und will auf der rechten Hälfte ein analoges 
Zeigerinstrument (Uhr, Drehzahlmesser, Tacho oder so) darstellen. Der 
Kreis samt Beschriftung wird einfach einmal als Bild gespeichert. Aber 
wie mache ich das mit dem Zeiger? Ich will bei einem Winkel von 270° 
schon so ca. 100 verschiedene Zeigerstellungen darstellen. Am besten mit 
einer Zeigerbreite von 3 Pixel damit er nicht zu klein wirkt. Waagerecht 
würde der Zeiger also so aussehen:
 000000000000000000000000000000000
00000000000000000000000000000000000
 000000000000000000000000000000000
Jede Mögliche Zeigerstellung in einem einzelnen Bild zu speichern ist 
ziemlich speicherfressend (Habe nur einen Mega32). Oder wäre es besser 
von jedem Pixel des Waagerechten Zeigers ausgehend, mit Sinus und 
Cosinus die Position des Pixels um x Grad gedreht zu berechnen? An Zeit 
hätte ich ca. 2MIPS zur Verfügung, das sollte doch für so eine 
Berechnung reichen.
Oder habt ihr eine bessere Idee so einen Zeiger zu berechnen.
#646259
Logisch. Ich täte den Zeiger mit dem klassischen 
Bresenham-Linien-Algorithmus malen. Sinustabelle für die Richtungen ist 
eh klar. Wenn die Linienstärke 3 Pixel sein soll, würde ich jeden Pixel 
der Linie noch mit mit 4 oder acht Pixel umgeben, womit eine 
Linienstärke von drei entsteht:

   x
  xBx
   x

oder

  xxx
  xBx
  xxx

wobei x die umgebenden Pixel sind und B das "Bresenham-Pixel". Je nach 
Richtung kann man da natürlich noch optimieren, um weniger x-Pixel 
zeichnen zu müssen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.