Forum: PC-Programmierung Daten im Graph visualisieren / Skalierung ohne double


von A. R. (redegle)


Lesenswert?

Hallo,

ich bin im Moment am Umprogrammieren von einem Chart.
http://www.mikrocontroller.net/attachment/132389/Fenster_2.jpg

Das ganze ist ähnlich einer Vektorgrafik aufgebaut. Es wird ein Rahmen 
vorgegeben und aus diesem Rahmen wird dann berechnet welcher Strich wie 
lang sein soll. Ich kann z.B. vorgeben, dass die x-Achse 80% der 
Gesamtlänge haben soll, das 5% der Länge als Abstand zwischen Graph und 
Rahmen eingeplant werden sollen ...

Bis jetzt habe ich alle Berechnungen in dem Format double durchführt. 
Dies hatte sich angeboten, da ich mit % gerechnet habe. Vor dem zeichnen 
findet immer eine Konvertierung in int statt, da MFC Korrdinaten in 
Pixeln haben möchte. Nun habe ich u.a. hier im Forum mehrmals gelesen, 
dass eine Konvertierung von double nach int sehr Aufwendig 
sei(unterschiedlicher Ort im Prozessor).

Deswegen wollte ich alles so umprogrammieren, dass ich möglichst wenig 
Konvertierungen benötige. Bei den Vorgaben in % konnte ich das ganz 
einfach lösen in dem ich definiere, dass der Wert 10.000 100% entspricht 
(Der Umrechnungsfaktor ist später einstellbar).

Nun wollte ich Fragen ob dieses vorgehen Sinn macht, denn um mit int ein 
solches Konzept zu realisieren sind mehrere Umwandlungen notwendig um 
Rundungsfehler zu vermeiden.

Die nächste Frage wäre wie man ohne double eine sinnvolle Skalierung vom 
Wertebereich des Charts auf den Wertebereich des Desktops hinbekommt. 
Wenn ich nicht weiß ob der Wertebereich des Charts in der Größenordnung 
0,0001 oder 10000 liegt kann ich schlecht ohne Rundungsfehler rechnen.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

A. R. schrieb:
> Nun wollte ich Fragen ob dieses vorgehen Sinn macht, denn um mit int ein
> solches Konzept zu realisieren sind mehrere Umwandlungen notwendig um
> Rundungsfehler zu vermeiden.

Macht nur Sinn wenn das wirklich der Engpass ist. Double nach int ist so 
Aufwendig auch nicht und es ist davon auszugehen das moderne Prozessoren 
spezielle Optimierungen in ihrer FPU für solche Fälle haben.

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.