Java 如何在HSB颜色系统中更改颜色
我正在研究上一个答案中的示例代码 了解如何制作一个好的闪烁按钮。该示例代码使用以下代码指定颜色:Java 如何在HSB颜色系统中更改颜色,java,Java,我正在研究上一个答案中的示例代码 了解如何制作一个好的闪烁按钮。该示例代码使用以下代码指定颜色: for (int i = 0; i < N; i++) { clut.add(Color.getHSBColor(1, 1 - (i / N), 1)); } for (int i
for (int i = 0; i < N; i++)
{
clut.add(Color.getHSBColor(1, 1 - (i / N), 1));
}
for (int i = 0; i < N; i++)
{
clut.add(Color.getHSBColor(1, i / N, 1));
}
for(int i=0;i
颜色。getHSBColor(1,1-(i/N),1)是构建颜色的地方。getHSBColor()的第一个参数(色调)将指定基色。因此,如果我将其更改为230,则颜色应为基于蓝色的颜色;如果为60,则颜色应为黄色。但是示例程序并不像我预期的那样工作。在我将色调设置为不同的值后,没有闪烁的颜色变化。有人知道为什么吗?Color.getHSBColor()
应该接收从0到1的浮点数,因此任何大于1的值都将被视为1
看一看:
色调参数是一个介于0.0和1.0之间的十进制数,表示颜色的色调。你必须对色调数进行实验,找出它所代表的颜色
例如,setPenColor(Color.getHSBColor(0.56f,1.0f,0.8f))
资料来源:
例如,您可以执行以下操作:
float hue = your_color/255; // if you want to use 0-255 range
for (int i = 0; i < N; i++) {
clut.add(Color.getHSBColor(hue, 1 - (i / N), 1));
}
for (int i = 0; i < N; i++) {
clut.add(Color.getHSBColor(hue, i / N, 1));
}
float hue=您的颜色/255;//如果要使用0-255范围
对于(int i=0;i
Color.getHSBColor()
应接收从0到1的浮点数,因此任何大于1的值都将被视为1
看一看:
色调参数是一个介于0.0和1.0之间的十进制数,表示颜色的色调。你必须对色调数进行实验,找出它所代表的颜色
例如,setPenColor(Color.getHSBColor(0.56f,1.0f,0.8f))
资料来源:
例如,您可以执行以下操作:
float hue = your_color/255; // if you want to use 0-255 range
for (int i = 0; i < N; i++) {
clut.add(Color.getHSBColor(hue, 1 - (i / N), 1));
}
for (int i = 0; i < N; i++) {
clut.add(Color.getHSBColor(hue, i / N, 1));
}
float hue=您的颜色/255;//如果要使用0-255范围
对于(int i=0;i
奇怪,但java文档的说法不同(h代表色调):s和b分量应该是介于0和1之间的浮点值(数字范围为0.0-1.0)。h分量可以是任何浮点数。该数字的下限将从中减去,以创建一个介于0和1之间的分数。然后将该分数乘以360,以在HSB颜色模型中生成色调角度。奇怪,但java doc的说法不同(h表示色调):s和b分量应为介于0和1之间的浮点值(范围为0.0-1.0的数字)。h分量可以是任何浮点数。该数字的下限将从中减去,以创建一个介于0和1之间的分数。然后将该分数乘以360,以在HSB颜色模型中生成色调角度。