Zitat von
marabu:
Hallo Emil,
diese Player-Projekte sind nicht so richtig meine Welt, deshalb musst du alles was ich so von mir gebe sehr kritisch betrachten. Auf deinen Bildern erkenne ich, dass du für jeden Stereokanal ein 270-Grad Rundinstrument einsetzt. Der Grad-Winkel phi gibt dann zwar den Ausschlag an, aber der "echte" Winkel ergibt sich ja erst durch Addition auf den Startwinkel des Rundinstruments (225 Grad). Ob du diese Umrechnung zu Fuß richtig gemacht hast, das kannst du mit der Rechentechnik (DegToRad) aus diesem Beitrag überprüfen:
drehpoti zeichnen
Die Schwingungsdämpfung (Pendeleffekt) habe ich noch nicht ganz durchschaut. Ich stelle mir das so vor, dass der Wechsel zwischen diskreten Skalenwerten durch interpolierte Werte weich-gezeichnet wird. Ist das alles schon Bestandteil der C-Lösung, die du portierst oder ist das jetzt Neuland?
Diese GetTimes-Routine kommt mir etwas seltsam vor. Stammt die von dir? Kannst du beschreiben, was du damit erreichen möchtest? Beim ersten Durchlauf wird 0 geliefert, später ein gebrochener Sekundenabstand.
Der einzige Aufruf von DrawMeters() geschieht wohl in GLDraw() - und diese Prozedur wird vom Timer-Event alle 25 Millisekunden aufgerufen. Damit wird aber immer alles gezeichnet. Kann man denn das Zeichnen der Nadelausschläge und des eigentlichen Rundinstrumentes nicht voneinander trennen?
Freundliche Grüße
Hi Achim
Das weichzeichnen ist Bestandteil der C-Lösung wird aber durch GetTimes routine wieder aufgelößt
dt .. der gebrochene Sekundenabstand wie du es nennst(Single) 0,xx werte wird zu den ausschlagwerten multipliziert
dadurch entsteht der effekt das der Pendel in der zwichenzeit wieder auf 0 sinken kann.
Durch den Schub dt*10.0 (dt=gebrochene Sekundenteil) bekommt das Pegel wieder eine aufwärtzbewegung plus der WaveDaten
die in den moment ankommen.
Dies geschieht aber nicht!
Ob das nun an der berechnung des Winkel liegt muss ich nochmal prüfen.
Da ich den Source in C++ persönlich vom Author bekommen habe werde ich ihn mal hochladen.
Kannst dir das mal anschauen wenn du die zeit dazu hast...
Wieder gelöscht !
Kann ihn bei bedarf über PN zusenden.
Wie gesagt da funktioniert alles!
EDIT:
Die berechnung lass mal hingestellt sein ob sie richtig ist!
lphi := (lmax/270.0*128.0*13.5)/20.0;
geschieht eigentlich schon im vorfeld beim c++ source
Ich habe sie nur deshalb eingefügt weil ich lmax nicht zu single habe konvertieren können.
original gibt es nur lphi := lmax;
Nix anderes .. da sind der effekt des Pendelausschlag und die Daten für Wavedata schon enthalten.
PS: Das zeichnen kann man nicht trennen muss man auch nicht da
OpenGl schnell genug ist
damit fertig zu werden.
gruss Emil