![]() |
Runden auf einen bestimmten Wert
Hi ;)
Irgedwie bin ich im Praktikumssemster angekommen und soll ein Programm für ein Virtuelles Musicinstrument schreiben, angelehnt an den Theremin. Dies soll ich über verschiedene Eingabemöglichkeiten realsieren. zb. Ein elektromagntisches Trackersystem mit 2 sensoren oder eine Webcam die die Bewegung der Hände erfasst. So das reicht an Vorgeschichte^^ Nun steh ich vor einem ganz natürlichen Problem, das ich die daten nicht so bekommen wie ich sie wirklich brauche. Es würde mir das Leben unheimlich erleichtern, wenn es in delphi 7 ein funktion gäbe die Werte in ein bestimmte Richtung runden. Als Beispiel: Ich hab zwischen 10 Werten 3 Punkte auf die gerundet werden soll, immer dort wo er am nähsten dran ist. Weiß jmd ob es so was schon gibt oder ob ich mir da selber was ausdenken sollte? MFG Eric |
Re: Runden auf einen bestimmten Wert
|
Re: Runden auf einen bestimmten Wert
Etwas fertiges gibt es da nicht, aber es sollte doch wohl kein Problem sein den Wert mit den zwei "Bruchstellen" zu vergleichen und danach den passenden der drei Werte auszuwählen?
Grüsse, Dirk |
Re: Runden auf einen bestimmten Wert
Da dauert das Suchen ja länger als das Tippen ;)
Delphi-Quellcode:
cu
function RoundTo( Value : extended; ToValue : array of extended ) : extended;
var idx : integer; begin if High(ToValue) < 0 then Result := Value else begin Result := ToValue[ Low(ToValue) ]; for idx := Low(ToValue) + 1 to High(ToValue) do if Abs( Result - Value ) > Abs( ToValue[ idx ] - Value ) then Result := ToValue[ idx ]; end; end; Oliver |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:22 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