我想根据彩虹的颜色(红色,黄色,绿色,蓝色...)对颜色进行枚举。
我基本上可以看到两种方法:
(哦,虽然我进行了一些SO研究,但没有发现很好的结果。如果这个问题已经发布,请直接指向该位置,然后将其删除。)
编辑:我更希望使它独立于所使用的技术来显示渐变。例如,像GetRainbowColor(float f)之类的东西,f在0(红色)到1(紫罗兰色)之间变化,效果很好。
最佳答案
这比您想象的要容易。
首先,您需要将hsv或hsl转换为rgb的功能。 Here is C# code to do that conversion。
然后,您只需迭代色调h
的所有可能值,同时保持saturation
和发光度l
不变。
如果您希望彩虹的100种颜色均匀分布:
for(double i = 0; i < 1; i+=0.01)
{
ColorRGB c = HSL2RGB(i, 0.5, 0.5);
//do something with the color
}
通过将所有这些颜色添加到
GetRainbowColor
中并返回适当的索引颜色,您还可以通过这种方式轻松创建所需的函数List<ColorRGB>
。关于c# - 如何在C#中获得彩虹色渐变?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2288498/