Ответ, который заставляет вас иметь дело с Perl вместо того, чтобы заниматься проблемой, не то, что я искал ...

мешивании синей и желтой краски получается зеленый цвет.

У меня есть два цвета RGB:

синий = (0, 0, 255)

и желтый = (255, 255, 0)

Каков алгоритм для нахождения цвета RGB, который является результатом смешивания двух цветов, как они будут выглядеть при использовании краски? Получающиеся цвета из алгоритма не должны быть ужасно точными. Для приведенного выше примера это будет выглядеть только как зеленый.

Заранее спасибо.

Редактировать: Эта функция, написанная на Go, работала для меня, основываясь на ответе LaC.

func paintMix(c1, c2 image.RGBAColor) image.RGBAColor { 
    r := 255 - ((255 - c1.R) + (255 - c2.R))
    g := 255 - ((255 - c1.G) + (255 - c2.G))
    b := 255 - ((255 - c1.B) + (255 - c2.B))
    return image.RGBAColor{r, g, b, 255}
}

Редактировать № 2 Все это позволяет смешать голубой и желтый, смесь синего и желтого становится черным, что кажется неправильным. Я все еще ищу рабочий алгоритм.

Редактировать № 3 Вот полный рабочий пример в Go с использованием цветового пространства HLS:http://go.pastie.org/1976031, Спасибо Марк Рэнсом.

Редактировать № 4 Кажется, что путь к еще лучшему смешиванию цветов состоит в использовании уравнения Кубелки-Мунка

Ответы на вопрос(5)

Ваш ответ на вопрос