Hi, ich programmiere gerade ein Tachometer für einen kleinen Motor, welches auf ein LCD Display ausgegeben werden soll.(Geschwindgkeitsmessung und LCD Ansteurung funzt schon) Ich dachte mir, das ich ein Tachometer wie auch im Auto zeichne(Ein Kreis, und vielleicht 330Grad werden zur Geschwindigkeitsanzeige genutzt. Unten ist dann halt eine Lücke zwischen Min und Max Geschwindigkeit) Maximal sollen 400 km/h dargestellt werden können, und sagen wir ich nutze 330° zur Anzeige, dann würde 1 km/h Geschw.änderung doch 330/400=0,6 Grad Zeigeränderung entsprechen, oder? Dann müßte ich doch nur von einem Nullpunkt ausgehen, die Anzahl der Gradsegmente aufaddieren die der jeweiligen Geschwindigkeit entsprechen und das dann in xy-Polarkoordinaten umrechnen... Würde das erstmal so funktionieren? Aber für die Berechnungen brauche ich ja trigonometrische Funktionen..ist das nicht ar...langsam? Kann man das irgendwie durch Tricks vereinfachen und die sin/cos Funktionen vermeiden? Ich habe da Linien/Kreisalgorithmen von einem Herrn Bresenham gefunden, die ziemlich genial zu sein scheinen und ganz ohne sowas auskommen. Gibts sowas ähnliches auch für sinus etc? Oder ist mein ganzer Ansatz Mist und zu Umständlich? noch eine Frage zur Polarkoordinatenumrechnung: Ich habe bei Wikipedia geschaut, und diese ganzen Polarformeln haben als 0Grad Ursprung die X-Achse. Kann man diesen Ursprung auch irgendwie an eine andere Stelle legen(wie würde sich das in der Formel auswirken? Und wie wirken sich globale Variablen auf die Geschwindigkeit aus? Werden die irgendwie langsamer angesprochen? Oder ist das egal? Sorry falls das alles Kindergartenfragen sind, aber ich bin Anfänger und muss noch viel lernen. Evtl hab ich auch erstmal ganz andere Probleme als mich um irgendwelche Geschwindigkeitsoptimierungen zu kümmern ;P P.S: Ich arbeite auf einem H8S irgendwas Hitachi mikroc.
Welche Auflösung hat das Display und wieviele Pixel Durchmesser hat der Kreis?
also das display hat 240*128 und der kreis hat einen durchmesser von 120px
Naja dann wird das eh nix mit 0,6 Grad. Wie zeichnest du denn den Kreis? Im Prinzip brauchst du ja nur den Mittelpunkt und dann eine Tabelle mit 60 x,y Punkten. Die sollten einen viertel Kreis ergeben. Den kannst du dann in alle Richtungen drehen wie du es brauchst. Den Zeiger kannst du dann mit dem Bresenham bzw. dem Anstieg machen. Du hast ja dann den Mittelpunkt und auch die Zielkoordinaten vom Kreis. http://de.wikipedia.org/wiki/Bresenham-Algorithmus Hier ist auch Beispielcode dabei.
also den kreis zeichne ich mit dem bresenham kreisalgorithmus von wikipedia...das funktioniert auch wunderbar. das mit der tabelle ist eine idee. ich las mir das mal durch den kopf gehen und versuche da ne lösung für mich zufinden und das irgendwie hinzufrickeln
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.