При смешивании синей и желтой краски результат - какой-то зеленый.
У меня два цвета 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}
}
Edit # 2 Хотя это удается смешать голубой и желтый, смесь синего и желтого становится черной, что кажется неправильным. Я все еще ищу рабочий алгоритм.
Edit # 3 Вот полный рабочий пример в Go, использующий цветовое пространство HLS: http://go.pastie.org/1976031 . Спасибо, Марк Рэнсом.
Редактировать # 4 Похоже, что путь вперед для еще более лучшего смешивания цветов заключался бы в использовании уравнения Кубелки-Мунка