找到两种已知颜色之间颜色的百分比值

And*_*rei 6 flash hex actionscript-3

确定两个给定值之间颜色百分比值的最佳方法是什么.换句话说,计算颜色C的%位置的最佳方法是什么?

颜色A - 0x0000FF颜色B - 0x00CCFF颜色C - 0x00FFFF

谢谢!

Dan*_*iel 6

好吧,这不是那么直接,因为它取决于你决定如何量化颜色.

你可以通过HSB来实现,这在我看来是更正确的方式(虽然不一定是事实)或者只是使用十六进制值.

最快可能是使用hax值来做到这一点

var colour:uint = 0x9900CC;
var r:uint = colour >> 16;
var g:uint = colour >> 8 & 0xFF;
var b:uint = colour & 0xFF;
Run Code Online (Sandbox Code Playgroud)

.这会给你每个频道的价值(c)(ABC是颜色)

然后为每个频道做数学运算(c)

(cB - cA)/(cC - cA)
Run Code Online (Sandbox Code Playgroud)

然后,一旦你获得了这些chanel中的每一个,你可以将它们加在一起并除以3.

但是有一个问题,如果颜色A和C对于任何通道都是相同的,则需要添加一个异常(因为cC和CA为零,你不能除以零),此时你还需要决定如何处理这种差异.