我正在写一个Java游戏,我想要实现一个功率计,你会有多难拍摄一些东西.
我需要编写一个在0到100之间取一个int的函数,根据该数字的高度,它将返回Green(功率刻度为0)和Red(功率刻度为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);
}
Run Code Online (Sandbox Code Playgroud)
其中"功率"是介于0.0和1.0之间的数字.0.0将返回亮红色,1.0将返回亮绿色.
Java Hue图表:
