我正在嘗試在 Java SWING 應用程式中從 HSB 值(每個度數一種顏色)創建一個 RGB 調色板。我的問題是 Color.HSBtoRGB() 為每個度數回傳相同的值。我不明白。我在 Internet 上搜索并嘗試了一些似乎不適用于我的系統的示例。無論如何,這是我的問題的一個簡單的作業示例:
import java.awt.Color;
public class Main {
public static void main(String[] args) {
int rgb, red, green, blue;
for (int i = 0; i < 360; i ) {
rgb = Color.HSBtoRGB((float)i, 1.0f, 1.0f);
red = (rgb >> 16) &0xFF;
green = (rgb >> 8) &0xFF;
blue = rgb &0xFF;
System.out.format("%d %x %d %d %d \n", i, rgb, red, green, blue);
}
}
}
我的輸出看起來像這樣
0 ffff0000 255 0 0
1 ffff0000 255 0 0
2 ffff0000 255 0 0
3 ffff0000 255 0 0
4 ffff0000 255 0 0
所有 360 色均為紅色。我在這里做錯了什么?
uj5u.com熱心網友回復:
根據檔案,色調值是介于 0 和 1 之間的浮點數,因此您必須i除以360.
rgb = Color.HSBtoRGB((float)i / 360, 1.0f, 1.0f);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/516702.html
標籤:爪哇摇摆
