Alb*_*sut 1 java for-loop colors
在这段代码中
int[] values = new int[] {0, 32, 64, 96, 128, 160, 192, 224, 255};
for (int r = 0; r < values.length; r++){
for (int g = 0; g < values.length; g++){
for (int b = 0; b < values.length; b++) {
System.out.println("Colors are: " + values[r]+ ","+values[g]+ ","+values[b]);
Run Code Online (Sandbox Code Playgroud)
我有一个颜色列表,但它们没有订购:我希望改变这个循环,以获得从白色到黑色,或相反,从黑色到白色的有序颜色列表.
怎么改变这个循环?
非常感谢你
我会这样写
int[] values = new int[]{0, 32, 64, 96, 128, 160, 192, 224, 255};
SortedMap<Long, Color> colours = new TreeMap<>(Collections.reverseOrder());
for (int r : values) {
for (int g : values) {
for (int b : values) {
long brightness = (r + g + b) / 3;
long colourScore = (brightness << 24) + (r << 8) + (g << 16) + b;
colours.put(colourScore, new Color(r,g,b));
}
}
}
for (Color color : colours.values()) {
System.out.println(color);
}
Run Code Online (Sandbox Code Playgroud)
这有利于红色和绿色蓝色,因为蓝色着色与夜晚有关.;)它打印
java.awt.Color[r=255,g=255,b=255]
java.awt.Color[r=255,g=255,b=224]
java.awt.Color[r=224,g=255,b=255]
java.awt.Color[r=255,g=224,b=255]
java.awt.Color[r=255,g=255,b=192]
java.awt.Color[r=224,g=255,b=224]
java.awt.Color[r=192,g=255,b=255]
... many deleted ...
java.awt.Color[r=32,g=0,b=32]
java.awt.Color[r=0,g=0,b=64]
java.awt.Color[r=0,g=32,b=0]
java.awt.Color[r=32,g=0,b=0]
java.awt.Color[r=0,g=0,b=32]
java.awt.Color[r=0,g=0,b=0]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1684 次 |
| 最近记录: |