Mieszanie dwóch kolorów „naturalnie” w javascript
Problem: Chcę połączyć dwa kolory w javascript i uzyskać kolor wyniku. Istnieje wiele podobnych pytań dotyczących SO, jednak nie znajduję niczego, co rzeczywiście działa poprawnie. Wiem, że mieszanie dwóch różnych kolorowych farb (pigmentów) i świateł da bardzo różne wyniki (http://en.wikipedia.org/wiki/Color_mixing).
Oto pytania i sugerowane rozwiązania, które już widziałem i próbowałem wdrożyć:
1: Mieszanie dwóch wektorów kolorów RGB w celu uzyskania wyniku
Więc mieszanie kolorów w RGB. Zaimplementowałem go, aw niektórych przypadkach działa w niektórych przypadkach.
Przykład pracy: Mieszaniered
zyellow
->orange
. Świetny!
http://jsbin.com/afomim/1/edit
Nie działający przykład: Mieszanieblue
zyellow
->gray
. Nie za dobrze! :)http://jsbin.com/afomim/5/edit
Wiem, że w mieszaniu RGBblue
zyellow
nigdy się nie udagreen
i rozumiem dlaczego.
Nie znajdziemy tutaj odpowiedzi, przejdźmy do przodu.
2: Dodawanie kolorów (kolorów) Razem jak farba (niebieski + żółty = zielony itp.)
Spróbujmy pracować z wartościami CMYK, jak zasugerowano w tej dyskusji. Mieszaniecyan
zyellow
dajegreen
:
http://jsbin.com/igaveg/1/edit
ale mieszanieblue
zyellow
prowadzi doblack
.
http://jsbin.com/igaveg/2/edit -> Nie działa!
3: Jak mieszać kolory „naturalnie” z C #?
Bardzo podobne pytanie. Najbardziej aktualna odpowiedź sugeruje konwersję kolorów na LAB, a to rozwiązanie wydaje się obiecujące.
Przekształciłem więc moje kolory w LAB. Algo konwersji jest poprawne, przetestowałem to!
http://jsbin.com/oxefox/1/edit
Teraz mam dwa kolory w LAB, ale jak je miksować?
UWAGA Wiem, że prawdopodobnie nie znajdę algo, które się mieszablue
zyellow
i da idealnegreen
, ale mam nadzieję, że mogę wygenerować coś podobnego do zielonego :)