Cálculo de uma cor mista em RGB

Eu quero poder pegar dois vetores RGB-256 e calcular o resultado de sua mistura. Também quero poder atribuir a cada vetor um peso diferente. Eu experimentei usando a placa de cores do Word e vi que, embora algumas cores se misturem de acordo com uma média ponderada:

0.5*red(255,0,0) + 0.5*yellow(255,255,0) = orange(255,127,0)

others not:

0.5*yellow(255,255,0) + 0.5*blue(0,0,255) = gray (127,127,127) e nãogreen (0,255,0)

Existe um algoritmo para o cálculo preciso de todas as cores ou sou forçado a fazê-lo usando uma tabela de consult