Laden...

Farbverlauf: Aktuelle (Zwischen-)Farbe aus gegebenen Start- und Endfarbwert berechnen

Erstellt von moelski vor 10 Jahren Letzter Beitrag vor 10 Jahren 2.430 Views
M
moelski Themenstarter:in
183 Beiträge seit 2011
vor 10 Jahren
Farbverlauf: Aktuelle (Zwischen-)Farbe aus gegebenen Start- und Endfarbwert berechnen

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

R
212 Beiträge seit 2012
vor 10 Jahren

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
83
2,55 = 211,65 Blau

meinstest du soetwas??

T
64 Beiträge seit 2011
vor 10 Jahren

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()

M
moelski Themenstarter:in
183 Beiträge seit 2011
vor 10 Jahren

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

R
212 Beiträge seit 2012
vor 10 Jahren

Der Farbwert für die Position wäre ein einfacher 3satz wenn man mit dem HSV farbraum arbeitet.

1.346 Beiträge seit 2008
vor 10 Jahren

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

M
moelski Themenstarter:in
183 Beiträge seit 2011
vor 10 Jahren

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