混合两个RGB颜色矢量以得到结果

yos*_*yos 15 math rgb vector paint colors

我试图混合两个源RGB矢量来创建第三个"合成矢量",这是前两个的直观组合.

理想情况下,我可以模仿"真正的油漆混合特性",但为了简单起见,我试图找到一种方法,其结果看起来直观地像你从组合两个源rgb得到的结果.

最低限度,这些特征:
RED + BLACK =深红色
+白色=浅红色

最佳,也具有真正的油漆特性:
RED + BLUE =紫色
红色+黄色=橙色
(等)

-

我目前通过添加两个源RGB矢量/ 255,然后归一化(并乘以255)来做"懒惰的方式".所以,使用这个:[Red = <1,0,0>*255] + [Blue = <0,0,1>*255]给出Magenta = <1,0,1>/sqrt(2)*255,虽然其他颜色不太直观甚至不可见......我需要一个更好的方法!请帮忙 :-)

Joh*_*ohn 16

您的建议与加权平均值相同吗?

Average R = w1*R1 + w2*R2 + w3*R3 + ... + wn*Rn

Average G = w1*G1 + w2*G2 + w3*G3 + ... + wn*Gn

Average B = w1*B1 + w2*B2 + w3*B3 + ... + wn*Bn

w是加权分数,它们的总和是1.

例如,R1是要混合的第一种颜色的红色成分.

因此,如果你想均匀混合两种颜色,它将是:

Average R = 0.5*R1 + 0.5*R2

Average G = 0.5*G1 + 0.5*G2

Average B = 0.5*B1 + 0.5*B2

至于将结果颜色映射到命名颜色("深红色")可能只是做一个查找表并选择最接近的颜色?

  • 如果您正在混合2种颜色,则W为1/2或0.5,正如答案所暗示的那样. (2认同)

Pau*_*sik 10

问题在于你试图将两种不同的颜色理论联系起来.RGB是加色理论(从光源发出彩色光).在这种情况下,你添加到混音中的光谱越多,你就越接近白色.

对于"油漆混合",您需要模拟减色理论,该理论控制反射颜色混合的方式.(即反射光,如油漆,不同表面等).这是一个概述.

此页面上的JavaScript 是关于如何将RGB转换为CMYK的线索.