将彩虹颜色映射到RGB

bvk*_*256 3 java rgb

假设我有一个带有构造函数的类RainbowColorsMapper RainbowColorsMapper(int n),其中n> = 2.现在我希望连续映射彩虹色从红色到紫色,我使用的方法mapper.getColor(int number)是低值对应红色端,高度接近n到紫色端.如果n = 2,则mapper.getColor(0)返回光谱的大部分左侧颜色(接近红色),并mapper.getColor(1)返回最正确的颜色.与自动缩放的较大n相同.

我的问题:这可以相对容易地完成,如果是,那么算法的建议是什么?

Tom*_*son 7

最简单的方法是在HSL颜色空间而不是RGB中工作.创建饱和度和亮度固定的颜色(我建议为100%和50%),并且色调在合适的端点(您可能需要尝试查找)之间变化.使用Color.getHSBColor将HSL值转换为RGB .