Algoritmo para encontrar a cor entre outras duas - no espaço de cores das cores pintadas
Ao misturar tinta azul e amarela, o resultado é uma espécie de verd
Tenho duas cores rgb:
blue = (0, 0, 255)
e amarelo = (255, 255, 0)
Qual é o algoritmo para encontrar a cor rgb resultante da mistura das duas cores, como apareceriam ao usar tinta? As cores resultantes do algoritmo não precisam ser terrivelmente exatas. Para o exemplo acima, ele teria que parecer apenas com algum tipo de verd
Desde já, obrigado
Editar Esta função, escrita em Go, funcionou para mim, com base na resposta do 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 Embora isso consiga misturar ciano e amarelo, a mistura entre azul e amarelo fica preta, o que não parece certo. Ainda estou procurando um algoritmo funcional.
Edit # 3 Aqui está um exemplo de trabalho completo no Go, usando o espaço de cores HLS:http: //go.pastie.org/197603. Obrigado Mark Ransom.
Edit # 4 Parece que o caminho a seguir para uma mistura de cores ainda melhor seria usar a equação de Kubelka-Munk