如何找到对已知颜色 C 有贡献的 n 种颜色的分数权重?
How to find the fractional weighting of n colors which contribute to a known color C?
然而,链接的问题需要在此问题之前解决,或者至少理解了问题。这可以认为是相反的。
这个问题是,给定 RGB 中的 n 种颜色,例如
Color1 as RGB (255, 128, 128)
Color2 as RGB (128, 128, 128)
Color3 as RGB (128, 0, 128)
我们知道给定的颜色 C,找到每种颜色的分数权重,这样当这些颜色混合时,给定的分数权重会导致已知颜色 C 的结果颜色。分数权重在上面的链接问题中定义,它是一个介于 0.0 和 1.0 之间的值,其中总权重等于 1.0。例如,颜色 1 可以是 0.2,颜色 2 可以是 0.2,颜色 3 可以是 0.6。
RGB 颜色的插值是线性的 space。
一般颜色数不会超过5种,一般是2种或3种或4种颜色。
请注意,很可能无法将这些颜色混合以获得颜色 C,例如,如果我们有两种非常红的颜色,而我想要颜色 C(绿色),则无法混合两个红色得到绿色。那么这样的话,就无解了。
同样在某些情况下,可能有多种混合颜色以生成颜色 C 的方法。
是的,所以线性方程有助于解决问题。一些 Java 解决问题的代码位于此处,请注意它是使用 Scala SBT 构建的,但其 Java 代码。
https://github.com/PhilAndrew/betweenrgb
这里测试加权颜色的合并:
这个问题是,给定 RGB 中的 n 种颜色,例如
Color1 as RGB (255, 128, 128)
Color2 as RGB (128, 128, 128)
Color3 as RGB (128, 0, 128)
我们知道给定的颜色 C,找到每种颜色的分数权重,这样当这些颜色混合时,给定的分数权重会导致已知颜色 C 的结果颜色。分数权重在上面的链接问题中定义,它是一个介于 0.0 和 1.0 之间的值,其中总权重等于 1.0。例如,颜色 1 可以是 0.2,颜色 2 可以是 0.2,颜色 3 可以是 0.6。
RGB 颜色的插值是线性的 space。
一般颜色数不会超过5种,一般是2种或3种或4种颜色。
请注意,很可能无法将这些颜色混合以获得颜色 C,例如,如果我们有两种非常红的颜色,而我想要颜色 C(绿色),则无法混合两个红色得到绿色。那么这样的话,就无解了。
同样在某些情况下,可能有多种混合颜色以生成颜色 C 的方法。
是的,所以线性方程有助于解决问题。一些 Java 解决问题的代码位于此处,请注意它是使用 Scala SBT 构建的,但其 Java 代码。
https://github.com/PhilAndrew/betweenrgb
这里测试加权颜色的合并: