如何在HSB颜色系统中改变颜色

时间:2011-09-20 15:57:09

标签: java

我正在研究此post

上一个答案的示例代码

了解如何制作一个好的闪烁按钮。该示例代码使用以下代码指定颜色:

           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));             
            } 

Color.getHSBColor(1,1 - (i / N),1)是构建颜色的地方。 getHSBColor()的第一个参数(Hue)将指定基色。因此,如果我将其更改为 230 ,则颜色应为蓝色基础颜色;如果 60 ,则颜色应为黄色。但示例程序不能像我预期的那样工作。将Hue设置为不同值后,没有闪烁的颜色变化。谁知道为什么?

1 个答案:

答案 0 :(得分:1)

Color.getHSBColor()应该从0到1接收浮点数,因此任何大于1的值都将被视为1 ......

看看:

  

hue参数是介于0.0和1.0之间的十进制数,表示颜色的色调。您将不得不尝试使用色调编号来找出它所代表的颜色。

     

例如,setPenColor(Color.getHSBColor(0.56f,1.0f,0.8f));

来源:http://www.otherwise.com/Lessons/ColorsInJava.html

例如,你可以这样做:

        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));             
        }