x
。这不是一个正确的例子(因为我对颜色理论了解不多),但这是为了说明这一点。假设你有一种颜色,像绿褐色
#45512b
。要解决的问题是,针对两个系统(加性和减性),找出能够生成绿褐色(给定颜色)的颜色对。所以你有“绿褐色”
#45512b
的值,并想知道混合在一起形成这种颜色的颜料。也许是#fff123
和#bbb456
通过减法混合形成绿褐色(只是举个例子)。然后对于加性混合,找出用于计算模型中的3种基本光颜色的两种光阴影,它们结合起来形成绿褐色。基本上就是寻找这个:
function additiveComponents(color) {
return [ a, b ]
}
function subtractiveComponents(color) {
return [ a, b ]
}
输入颜色不需要以十六进制格式,任何颜色空间都可以使用。但最终我希望将两个输出值转换回十六进制值。
我能想象的一种天真的方法是采用反向算法(混合两种颜色生成第三种颜色的算法),并尝试每种颜色的组合,直到找到正确的颜色。但那将非常低效,想知道是否有更好的方法或标准技术。