【问题标题】:Find percent value of a color between two known colors查找两种已知颜色之间的颜色百分比值
【发布时间】:2011-01-20 12:08:06
【问题描述】:

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

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

谢谢!

【问题讨论】:

标签: flash actionscript-3 hex


【解决方案1】:

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

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

最快的方法可能是使用 hax 值

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

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

然后对每个通道进行数学运算 (c)

(cB - cA)/(cC - cA)

然后,一旦你得到了这些 chanel,你可以将它们加在一起并除以 3。

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

【讨论】:

  • 我肯定也会尝试使用 HSL、HSL 或其他圆柱形颜色系统之一。根据您的应用,您可能会获得更好(或更有意义)的结果。
  • 我仍然想知道处理两个数字相同且中间数字不同的情况最合适的方法是什么,从数学上讲,差异是无穷大的。即使在处理 HSV(HSB,HSL) 时也是如此
猜你喜欢
  • 2011-05-23
  • 1970-01-01
  • 2016-08-03
  • 2013-02-08
  • 2014-09-14
  • 1970-01-01
  • 2012-11-27
  • 2011-08-26
  • 2019-12-07
相关资源
最近更新 更多