Rechnen in einem natürlichen Farbraum
Übersicht

ChristianKBetreff: Rechnen in einem natürlichen Farbraum |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo zusammen,
ich würde gerne mit BlitzMax einen Farbkreis auf der Basis der Gegenfarbentheorie erstellen, allerdings weiß ich nicht, wie ich damit anfangen soll. Im RGB-Farbraum bilden z.B. Rot und Cyan einen Komplementärkontrast (gegenüberliegende Farben auf dem Kreis), während ein solcher Kontrast für das menschliche Auge zwischen Rot und Grün besteht. Bei Wikipedia habe ich ein Bild gefunden, das den "richtigen" Farbkreis zeigt: http://de.wikipedia.org/w/inde...0203111515 (zum Vergleich der RGB-Farbkreis: http://de.wikipedia.org/w/inde...0324121422) Die rechte Seite (also Rot, Grün und Blau) lässt sich noch relativ einfach berechnen, da die Farbkomponenten ja dem RGB-System entsprechen. Auf der linken Seite kommt die Gelb-Komponente dazu, und da weiß ich nicht mehr weiter. Wenn ich Gelb (255, 255, 0) mit Grün (0, 255, 0) mische, sollte Limonengrün/Gelb-Grün entstehen, aber das Problem ist, dass bei RGB das Grün schon komplett im Gelb enthalten ist, sodass bei der Addition wieder Gelb herauskommt. Ich wäre sehr dankbar für einen anderen Ansatz zum Mischen (eventuell in einem anderen Farbraum?). |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
das wurgel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Meinst du so?
Code: [AUSKLAPPEN] Local farbmischung#=0.6 ;zwischen 0 und 1
;0 = 1. Farbe ;1 = 2. Farbe ; 1. Farbe Local r1=255 Local g1=255 Local b1=0 ; 2. Farbe Local r2=0 Local g2=255 Local b2=0 ; Resultierende Farbe ausrechnen Local r3=r1*farbmischung + r2*(1-farbmischung) Local g3=g1*farbmischung + g2*(1-farbmischung) Local b3=b1*farbmischung + b2*(1-farbmischung) Color r1, g1, b1 Rect 10, 10, 50, 50 Color r3, g3, b3 Rect 60, 10, 50, 50 Color r2, g2, b2 Rect 110, 10, 50, 50 edit: Erklärung: farbmischung ist der Prozentsatz der 1. Farbe in der resultierenden Farbe. Folglich ist der Prozentsatz der 2. Farbe 100%-farbmischung also 1-farbmischung. Dann musst du nurnoch jede Farbe mit ihren Prozensatz malnehmen und zusammenaddiern, um sie zu mischen. |
||
1 ist ungefähr 3 |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für deine Antwort, das ist soweit ja auch ganz logisch. Das Problem ist nur, dass die resultierende Farbe nicht mit dem Farbkreis zusammenpasst. Limonengrün entsteht durch 50% Grün und 50% Gelb, allerdings sieht es dem 100% Grün in RGB sehr ähnlich. An dieser Stelle sollte aber eher ein dunkleres Grün stehen.
Genau so ist es bei den Komplementen. Das Komplement zu (255, 0, 0) sollte nach der Gegenfarbentheorie ungefähr (0, 192, 0) sein. Rechnerisch ist es aber (0, 255, 255), also Cyanblau. |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Frage: Ist dein gelb da wirklich 255,255 oder nicht etwa 128,128 sodass es insg die gleiche helligkeit 255 wie die anderen farben hat? | ||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hast recht, die Farbe war wirklich etwas zu dunkel. Ich habe mal den Farbkreis so gephotoshoppt, wie ich ihn gerne hätte.
Theoretisch lässt sich dann jeder Farbwert durch einen RGBY-Wert (statt RGB) beschreiben. Dadurch kann man auch das Komplement relativ leicht ermitteln. Allerdings entsteht dann ein neues Problem beim Umwandeln in RGB (sodass ich die Farbe in BlitzMax benutzen kann) und beim Mischen. Bei RGB kann man ja jede Farbe mit einer anderen mischen (Dreieck), was bei dem RGBY-Viereck nicht funktioniert (z.B. weiß ich nicht, was bei Blau+Gelb herauskommen soll...) |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group