我正在寻找一种算法来使用颜色混合公式计算第二种颜色

I'm looking for an algorithm to calculate the second color using the color mixing formula

好吧,我使用搜索找到了我问题的答案,但没有得到我想要的结果,所以我会尝试在这里提问:

如果我知道混色公式:

resultColorRGB = [round(firstColorR * alpha + secondColorR * (1 - alpha))], [round(firstColorG * alpha + secondColorG * (1 - alpha))], [round(firstColorB * alpha + secondColorB * (1 - alpha))]

其中 alpha ∈ [0..1].

那么如果我知道第一种颜色和结果的颜色,如何找到第二种颜色呢?

例如: 圆(35 * alpha + 255 *(1 - alpha))= 204,圆(alpha * 15 + 0 *(1 - alpha))= 3,圆(alpha * 0 + 153 *(1 - alpha))= 118 , 阿尔法 = 0.23

我不能使用求解线性方程组的方法,有两个原因(据我了解):alpha 不是整数,结果是通过四舍五入计算的。

但我确信有一些方法可以估计近似计算,而无需使用迭代。

如果所有的值都是准确的,那么你有方程 aA+(1-a)B=C,其中 A 和 B 是你的两个输入颜色,a 是 alpha,C 是输出颜色。 A、B 和 C 中的每一个都是红、绿、蓝的三元组,但这对数学没有影响;他们每个人都可以独立对待。

如果您有 A 和 C,以及 alpha 值 a,那么您有 B=(C-aA)/(1-a)。它不准确的事实并不重要。您可以准确计算这些值,然后四舍五入。由于信息在原始混合中丢失,因此无法准确取回 B。