AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Float wert an einen anderen "angleichen" über eine Toleranz
Thema durchsuchen
Ansicht
Themen-Optionen

Float wert an einen anderen "angleichen" über eine Toleranz

Ein Thema von static_cast · begonnen am 23. Aug 2006 · letzter Beitrag vom 23. Aug 2006
Antwort Antwort
static_cast

Registriert seit: 19. Okt 2003
Ort: Peine
300 Beiträge
 
#1

Float wert an einen anderen "angleichen" über eine

  Alt 23. Aug 2006, 20:15
Hi,

ich bin gerade dabei, mehr oder weniger, eine Funktion zu schreiben dir mir einen Wert an einen anderen angleicht, gibt es vllt. schon so etwas in der art:

function Adapt(Value,Target,Tolerance:Extended):Extended; ich möchte damit schwankende Werte weicher fallen oder ansteigen lassen, also z.B. nicht von 20 runter auf 5 sonder erst auf 15 oder der gleichen.

Habt ihr eine Idee oder einen Denkanstoß dazu? Ich da gerade total das Logik Problem mit

Gruß
Daniel
Daniel M.
"The WM_NULL message performs no operation. An application sends the WM_NULL message if it wants to post a message that the recipient window will ignore."
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Float wert an einen anderen "angleichen" über

  Alt 23. Aug 2006, 20:19
Könnte man mit DIV erreichen
Markus Kinzler
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#3

Re: Float wert an einen anderen "angleichen" über

  Alt 23. Aug 2006, 20:26
Meinst du vielleicht eine Interpolation?
Lukas
  Mit Zitat antworten Zitat
static_cast

Registriert seit: 19. Okt 2003
Ort: Peine
300 Beiträge
 
#4

Re: Float wert an einen anderen "angleichen" über

  Alt 23. Aug 2006, 20:33
Zitat von mkinzler:
Könnte man mit DIV erreichen
hehe, witzbold Ne aber so weit war ich schon...

@Tubos
Interpolation ist ja mehr für Grafiken, aber kann man sicher etwas für meine Zwecke von anwenden, aber gute Idee muss ich mal suchen.


// Edit:
ich glaub ich hab es jetzt soweit hingewurstet das es funktioniert...

Delphi-Quellcode:
function Adapt(Value,Target,Tolerance:Extended):Extended;
var
  MinTolerance,MaxTolerance:Extended;
begin
  Result:=Value;

  MinTolerance:=Target - ((Target / 100) * (Tolerance + 1));
  MaxTolerance:=Target + ((Target / 100) * (Tolerance + 1));

  if NOT ((Value >= MinTolerance) AND (Value <= MaxTolerance)) then
  begin
    Result:=(Target + Value) / 2;
  end;
end;
vllt. hat ja trozdem etwas besseres?

//Noch ein Edit:
Ich glaub ich bin zu blöd dafür irgendwie geht das nicht so wie ich mir das vorstelle, oder ich sollte einfach schlafen gehen und Morgen weitermachen...
Daniel M.
"The WM_NULL message performs no operation. An application sends the WM_NULL message if it wants to post a message that the recipient window will ignore."
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#5

Re: Float wert an einen anderen "angleichen" über

  Alt 23. Aug 2006, 21:23
Zitat von static_cast:
@Tubos
Interpolation ist ja mehr für Grafiken, aber kann man sicher etwas für meine Zwecke von anwenden, aber gute Idee muss ich mal suchen.
Interpolation ist einfach die Ermittlung von Zwischenwerten. Das hat mit Grafik nichts zu tun. Um einen linearen Zwischenwert zweier Zahlen zu berechnen, kannst du doch die einfachste (lineare) Interpolationsformel nehmen:
Zwischenwert = ZahlA + (ZahlB - ZahlA) * Faktor , wobei 0 < Faktor < 1
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz