Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Brett vorm Kopf: Prozent(um-)rechnung/Maßstab (https://www.delphipraxis.net/130089-brett-vorm-kopf-prozent-um-rechnung-massstab.html)

Carsten1234 3. Mär 2009 08:22


Brett vorm Kopf: Prozent(um-)rechnung/Maßstab
 
Hallo zusammen,

irgendwie habe ich ein Brett vorm Kopf. :wall: :wall:

Ich benutze für eine Darstellung die AdvProgressBar von TMSSoftware. Bei dieser Komponenten kann man einen MaxWert, einen MinWert sowie zwei Level-Werte eingeben und das Teil stellt dann in farbiger Darstellung (z.B. rot-grün-rot) die Werte grafisch dar (s. Bild).
Der freundliche Anwender kann über Eingabefelder (Absolut-)Werte im Bereich von -32768..+32768 frei eingeben, diese Werte jedoch müssen für die grafische Darstellung auf dem Komponentenbereich 0..100 (Prozent) skaliert bzw. umgerechnet werden.

Bsp.-Eingaben des Anwenders:
Max.: +200
Min.: -80
Schwellwert 1: -10 (untere Grenze)
Schwellwert 2: +50 (obere Grenze)

Ich weiß:
Gesamt = (Max.) - (Min.) = 280 = 100% // Klammern bewusst gesetzt
Die Schwellwertprozente:
SW_P1 = (-10) * 100 % / 280 = -3,6%
SW_P2 = (+50) * 100% / 280 = +17,9%

Das ganze muss nun skaliert werden auf den Bereich der Komponenten von 0..100.
Ich weiß:
Min. = - 80 = 0%
Max. = +200 = 100%
SW1 = -10 = -3,6%
SW2 = +50 = +17,9%

Aber wie "hebe" ich jetzt die beiden SW-Angaben sinnvoll in den Bereich 0..100 der Komponente?

Dank vorab und Gruß, Carsten

Uwe Raabe 3. Mär 2009 08:50

Re: Brett vorm Kopf: Prozent(um-)rechnung/Maßstab
 
Du musst bei den Schwellwerten die untere Grenze berücksichtigen:

Max.: +200 => 100%
Min.: -80 => 0%
Schwellwert 1: -10 (untere Grenze) => 100%*((-10) - (-80))/((+200) - (-80)) = 25%
Schwellwert 2: +50 (obere Grenze) => 100%*((+50) - (-80))/((+200) - (-80)) = 46,43%

Allgemein: 100*(Wert - Min)/(Max - Min) = <Wert in Prozent>

Carsten1234 3. Mär 2009 09:16

Re: Brett vorm Kopf: Prozent(um-)rechnung/Maßstab
 
Zitat:

Zitat von Uwe Raabe
Du musst bei den Schwellwerten die untere Grenze berücksichtigen:

Danke! :cheers:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:09 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