При смешивании синей и желтой краски результат - это своего рода зеленый цвет.
У меня есть два цвета rgb:
blue = (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. Спасибо Mark Ransom.
Изменить # 4 Кажется, что путь вперед для еще лучшего смешивания цветов заключался бы в использовании уравнения Кубельки-Мунк