Moin !
Gibt es in C# eine elegante / schnelle Möglichkeit um eine Farbe zu berechnen bei gebenem Min / Max / Value als Double Werte?
Ich möchte damit in einem Chart eine Höhenlinie einfärben.
In .Net gibt es doch einige Klassen für Gradienten. Könnte man sowas evtl. missbrauchen um einen Farbwert zu ermitteln?
Bsp:
Max = 400, Min = 100, Value = 250
ColorMax = Red
ColorMin = Blue
Ergebnis : 50% Blau, 50% Rot als Color Wert (ergibt einen Lila Ton)
Das hier geht schon in die Richtung:
Calculating Color Values for Visualization (C#)
Aber evtl. geht das auch noch einfacher ?
Greetz Dominik
Meinst du:
Value/(Max-Min)
250/(400-100)=83%
Am leichtesten wäre es wenn du nun:
100%-83%=17%
................=83%
172,55 = 43,45 Rot
832,55 = 211,65 Blau
meinstest du soetwas??
Nein er meint wohl ein Farbband wie beim HSV Farbraum wie im folgenden Bild.
HueScale.svg
Im Beispielbild ist Blau(Min) 240 und Rot(Max) 360 und der Lila(Value) 300.
Ich würde dir Vorschlagen, dass du für so etwas nur mit dem H Kanal im HSV Farbraum arbeitest und die Sättigung auf maximum hälst.
MSDN GetHue()
Moin !
Nein er meint wohl ein Farbband
Genau.
Mit Min / Max / Value hat man ja eine position im Farbband.
Und die Frage war ob es eine einfache Möglichkeit gibt bei gegebener Start & Endfarbe den Farbwert für die Position zu bekommen.
Greetz Dominik
Der Farbwert für die Position wäre ein einfacher 3satz wenn man mit dem HSV farbraum arbeitet.
Ich verstehe das Problem nicht. Auf der Seite ist eine ziemlich kurze und einfache Lösung für genau das Problem. Es hat mit sicherheit länger gedauert die Frage zu formulieren als es so zu machen wie es dort beschrieben ist.
LG pdelvo
Moin !
Der Farbwert für die Position wäre ein einfacher 3satz wenn man mit dem HSV farbraum arbeitet
korrekt.
Ich werde das damit versuchen.
Danke für die Info.
Greetz Dominik