Lichtwellenlängen in RGB-Codes
-
Hallo!
Ich berechne in einem C++-Programm aus Nutzereingaben Wellenlängen von Licht. Nun möchte ich gern noch die Farbe des Lichtes mit ausgeben.
Ob sich schonmal jmd. auf dieser Welt einen Kopf gemacht hat wie man RGB-Farbanteile aus so einer Zahl berechnen könnte. Es ist die Wellenlänge in Nanometer gegeben.MfG
Strolli
-
Kaum zu glauben, aber selbst bei solchen Problemen kann Google helfen!
http://www.google.de/search?hl=de&ie=UTF-8&oe=UTF-8&q=licht+wellenlänge+farbe+rgbDer 2. Link sieht da schonmal sehr vielversprechend aus.
-
Also Mischfarben kommen sowieso nicht in Betracht bei deiner Anzeige. Das reduziert das ganze auf die Grundfarben und einige Abstufungen.
Also das einfachste wird sein, wenn du dir ne Tabelle machst und nur die ungefähre Farbe anzeigst:
z.B.
~625-740nm -> rot: rgb(255,0,0)
~590-625nm -> orange: rgb(......)
...Genauere Tabelle findest du über google.
-
Google: lambda->rgb könnte auch ganz brauchbar sein.
-
Das kann aber nur anschaulich sein, niemals exakt - die genaue Farbtemperatur eines Monitors müßte ausgemessen werden, d.h. ein RGB(255,0,0) hat also je nach Gerät eine ganze andere Wellenlänge.
Außerdem muß man beachten, daß z.B. RGB(255,0,0) und RGB(128,0,0) genau die GLEICHE Wellenlänge haben, nur mit anderer Intensität.
Das HSV-Farbmodell bildet dies etwas besser ab, ich würde also zunächst mal nach einer Farbraumkonvertierung RGB<->HSV suchen.
-
Danke Danke!
Soviel Arbeit wollte ich mir eigentlich nicht machen. Ich werde einfach nur, wie MaSTaH beschrieben hat, prüfen ob die Wellenlänge in einem Bereich liegt und den Bereichen dann Farben zuweisen.
Strolli