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

questionAnswers(5)

yourAnswerToTheQuestion