如何将百分比转换为颜色,使其从绿色(100%)到红色(0%)之间变化,并在50%时呈黄色?
我使用的是简单的32位RGB格式——因此每个组件都是介于0和255之间的整数。我正在使用C#进行操作,但我想对于这样的问题来说,语言并不是那么重要。
基于Marius和Andy的答案,我采用以下解决方案:
double red = (percent < 50) ? 255 : 256 - (percent - 50) * 5.12;
double green = (percent > 50) ? 255 : percent * 5.12;
var color = Color.FromArgb(255, (byte)red, (byte)green, 0);
完美运作-我需要做出的唯一调整是使用256,因为在Silverlight中 (255 - (百分比 - 50) * 5.12) 在100%时会产生-1的值,导致黄色 (-1, 255, 0) -> 黄色 ...