Rechnen in einem natürlichen Farbraum

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

ChristianK

Betreff: Rechnen in einem natürlichen Farbraum

BeitragSa, März 27, 2010 15:07
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, März 27, 2010 15:30
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, März 27, 2010 15:53
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, März 27, 2010 15:57
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, März 27, 2010 17:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast recht, die Farbe war wirklich etwas zu dunkel. Ich habe mal den Farbkreis so gephotoshoppt, wie ich ihn gerne hätte.
user posted image
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

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group