flash - 查找两种已知颜色之间的颜色百分比值

标签 flash actionscript-3 hex

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

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

谢谢!

最佳答案

这并不是那么简单,因为这取决于您决定如何量化颜色。

您可以通过 HSB 来完成此操作,在我看来这是更正确的方法(尽管不一定是事实)或仅使用十六进制值。

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

var colour:uint = 0x9900CC;
var r:uint = colour >> 16;
var g:uint = colour >> 8 & 0xFF;
var b:uint = colour & 0xFF;

.这将为您提供每个 channel 的值(c)(ABC 是颜色)

然后对每个 channel 进行数学计算 (c)

(cB - cA)/(cC - cA)

然后,一旦获得这些 channel 中的每一个,您就可以将它们加在一起并除以 3。

但是有一个问题,如果任何 channel 的颜色 A 和 C 都相同,则需要添加一个异常(exception)(因为 cC 和 CA 为零,并且不能除以零),此时您也需要决定如何处理这种差异。

关于flash - 查找两种已知颜色之间的颜色百分比值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4743231/

相关文章:

C 将 emacs 中的十六进制值转换为不正确的值

c++ - cout << hex 与 uint8 和 uint16 的行为

css - 在 Flash 嵌入前放置一个 div

apache-flex - Flex 中的 RemotingServices、WebServices 和 HTTP 之间的区别

xml - 在 actionscript 中,检查 xml 节点属性是否存在的最佳方法是什么?

c++ - 有没有办法将 INT 和字符串存储在同一个数组中?

css - 如何在 flex 中将 upSkin、downSkin、overSkin 等蒙皮设置为 Accordion?

php - AS3 位图存储

flash - 下拉菜单出现在 Flash 视频后面

actionscript-3 - 我怎样才能在 View 堆栈之间很好地动画