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 udagreeni 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 :)

questionAnswers(8)

yourAnswerToTheQuestion