![]() |
VU-Meter Trägheit
Hallo zusammen,
ich habe mal die Zeigerbewegung für ein "analoges" VU-Meter geschrieben. Das funktioniert auch ganz gut, nur zappelt der Zeiger u.U. ziemlich wild herum. Hat jemand eine Idee, wie man eine Art künstliche Trägheit einbauen könnte, damit es sich wie ein echtes analoges VU-Meter verhält? hier noch der Quellcode:
Delphi-Quellcode:
Procedure Zeiger( x : Integer; ZeichnungsFlaeche : TImage; ZeigerFarbe : TColor ); Var y : Integer; Mitte, Breite, Hoehe : Integer; Begin Hoehe := ZeichnungsFlaeche.Height; Breite := ZeichnungsFlaeche.Width; Mitte := Breite div 2; With ZeichnungsFlaeche.Canvas do Begin Pen.Color := ZeigerFarbe; if x < Mitte then Begin y := Hoehe - Round( Sqrt( Sqr(Hoehe-10) - Sqr( Mitte-x ) ) ); End Else y := Hoehe - Round( Sqrt( Sqr(Hoehe-10) - Sqr(x-Mitte) ) ); Polyline([Point(Mitte,Hoehe), Point(x,y)] ); End; End; |
Re: VU-Meter Trägheit
btw.:
Delphi-Quellcode:
hmm ich das dürfte besser sein:Polyline([Point(Mitte,Hoehe), Point(x,y)] );
Delphi-Quellcode:
immer nur um ein grad veringern also keine Sprünge.moveto(Mitte,Hoehe); lineto(x,y); |
Re: VU-Meter Trägheit
Sieht schon ein bisschen besser aus. Danke!
|
Re: VU-Meter Trägheit
Ist nur so ne idee, leg doch einfach ne pause ein zwischen dem erneuten Zeichnen des Zeigers und da kannst dann ne Trägheit einbauen, irgendein Fakter der die Pause verkürzt und je länger du zeichnen musst nimmt der Faktor halt ab damit der Zeiger schneller steigt (wie zweideutig :lol: ) ;)
mfg phlux |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz