每个(红色、绿色和蓝色)的rgb范围为0-255意味着应该有256x256x256种可能的rgb颜色值。
我该如何循环并打印出每一个值?
我还不需要特定的顺序,只是想知道如何遍历并获取所有值而不跳过任何一个。
每个(红色、绿色和蓝色)的rgb范围为0-255意味着应该有256x256x256种可能的rgb颜色值。
我该如何循环并打印出每一个值?
我还不需要特定的顺序,只是想知道如何遍历并获取所有值而不跳过任何一个。
您可以简单地使用3个嵌套循环:
var red, green, blue;
for (red = 0; red <= 255; red++) {
for (green = 0; green <= 255; green++) {
for (blue = 0; blue <= 255; blue++) {
// rgb(red, green, blue)
}
}
}
订单:
R | G | B
---------------
0 | 0 | 0
0 | 0 | 1
0 | 0 | 2
...............
255 | 255 | 253
255 | 255 | 254
255 | 255 | 255
另一种方法是使用循环,循环次数为 256 * 256 * 256 (16777216):
var red, green, blue;
for (var rgb = 0; rgb <= 16777216; rgb++) {
red = (rgb >> 16) & 0xFF;
green = (rgb >> 8) & 0xFF;
blue = (rgb) & 0xFF;
// rgb(red, green, blue)
}
这里的顺序将会是:
R | G | B
---------------
0 | 0 | 0
1 | 0 | 0
2 | 0 | 0
...............
253 | 255 | 255
254 | 255 | 255
255 | 255 | 255
然而,性能不会很好,因为您将使用大量的逻辑。
检测到无限循环(或循环时间过长),因此我们停止了它的执行。抱歉!
- undefinedvar r;
var g;
var b;
for ( r = 0; r <= 255; r++ )
{
for ( g = 0; g <= 255; g++ )
{
for ( b = 0; b <= 255; b++)
{
// output values of r, g and b
}
}
}