假设我有一个带构造函数的 RainbowColorsMapper 类RainbowColorsMapper(int n)
,其中 n>=2。现在我想要使用该方法获得从红色到紫色的彩虹颜色的连续映射mapper.getColor(int number)
其中低值对应于红色端,高值对应于紫色端。如果 n = 2,mapper.getColor(0)
返回光谱最左边的颜色(接近红色),并且mapper.getColor(1)
返回最正确的颜色。与具有自动缩放功能的较大 n 相同。
我的问题:这可以相对简单地完成吗?如果是的话,对算法有什么建议?
最简单的方法就是在HSL色彩空间 http://en.wikipedia.org/wiki/HSL_and_HSV而不是RGB。创建饱和度和亮度固定的颜色(我建议固定为 100% 和 50%),并且色调在合适的端点之间变化(您可能需要进行实验才能找到)。使用以下命令将 HSL 值转换为 RGBColor.getHSBColor http://download.oracle.com/javase/6/docs/api/java/awt/Color.html#getHSBColor%28float,%20float,%20float%29.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)