19
为功率计生成红色和绿色之间的颜色?
我正在编写Java游戏,并且想实现一个功率计,以了解您要射击某些东西的难度。 我需要编写一个整数,该整数的取值范围为0-100,并且根据该数字的高低,它将返回绿色(功率标度为0)和红色(功率标度为100)之间的颜色。 与音量控制的工作方式类似: 我需要对颜色的红色,绿色和蓝色分量执行什么操作才能生成绿色和红色之间的颜色? 因此,我可以说,getColor(80)它将返回橙色(R,G,B中的值),或者getColor(10)将返回更绿色/黄色RGB的值。 我知道我需要增加一种新颜色的R,G,B值的分量,但是我不知道随着颜色从绿色到红色的变化,具体是上升还是下降。 进展: 我最终使用了HSV / HSB颜色空间,因为我更喜欢渐变色(中间没有深褐色)。 我使用的功能是: public Color getColor(double power) { double H = power * 0.4; // Hue (note 0.4 = Green, see huge chart below) double S = 0.9; // Saturation double B = 0.9; // Brightness return Color.getHSBColor((float)H, (float)S, (float)B); } 其中“幂”是介于0.0和1.0之间的数字。0.0将返回亮红色,1.0将返回亮绿色。 …