我到处搜索过,但找不到合适的解决方案。
我具有要转换为以下格式的RGB颜色:0xffffffff
许多答案将其转换为以下格式:#ffffff
有人知道如何将其转换为这种格式(0xffffffff)吗?
摘要:
double frequency = .3;
double r = 255;
double g = 255;
double b = 255;
for (int i = 0; i < 32; ++i)
{
// I am trying to make a rainbow, hence this for loop and the Math.sin
r = Math.sin(frequency*i + 0) * 127 + 128;
g = Math.sin(frequency*i + 2) * 127 + 128;
b = Math.sin(frequency*i + 4) * 127 + 128;
int red = (int)r;
int green = (int)g;
int blue = (int)b;
// converting, outputs a string
System.out.println(result);
}
Integer中有一个对此有用的功能:
double frequency = .3;
double r = 255;
double g = 255;
double b = 255;
for (int i = 0; i < 32; ++i)
{
// I am trying to make a rainbow, hence this for loop and the Math.sin
r = Math.sin(frequency*i + 0) * 127 + 128;
g = Math.sin(frequency*i + 2) * 127 + 128;
b = Math.sin(frequency*i + 4) * 127 + 128;
int red = (int)r;
int green = (int)g;
int blue = (int)b;
// converting, outputs a string
String result = "0x" + Integer.toHexString(red) + Integer.toHexString(green) + Integer.toHexString(blue);
System.out.println(result);
}
这样的事情?
public class Main {
public static void main(String[] args) {
double frequency = .3;
double r = 255;
double g = 255;
double b = 255;
r = Math.sin(frequency * 10 + 0) * 127 + 128;
g = Math.sin(frequency * 10 + 2) * 127 + 128;
b = Math.sin(frequency * 10 + 4) * 127 + 128;
int red = (int) r;
int green = (int) g;
int blue = (int) b;
System.out.println(String.format("0x%02x%02x%02x", red, green, blue));
}
}
输出:
0x9106d3