gpt4 book ai didi

java - 如何使用Java Color制作渐变颜色白-棕-绿

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:52 25 4
gpt4 key购买 nike

我正在尝试在以下之间创建渐变颜色:

White (light to dark)
Brown (dark to light
Green (dark to ligh)

但我不知道如何实现。

我的尝试很糟糕,所以我请求你的帮助。

我的尝试:

    for (int i = 255; i > 0; i--) {
if (i > 230) {
g2.setColor(new Color(0 + i, 0 + i, 0 + i));
} else if (i <= 230 && i > 180) {
g2.setColor(new Color(139 - (255 - i), 89 - (255 - i), 19));
} else if (i <= 180 && i > 79) {
g2.setColor(new Color(0, 60 + (180 - i), 0));
} else {
g2.setColor(Color.blue);
}
g2.drawLine(0, 255 - i, 500, 255 - i);
}

看:

GRADIENT IMAGE OUTPUT

感谢您的帮助!

最佳答案

我认为应该是一种:

for (int i = 255; i > 0; i--) {
float h;
float s;
float v;
if (i > 230) {
h = 0; // gray
s = 0;
v = 1f * i / 255;
} else if (i <= 230 && i > 180) {
h = 0.1; // brown
s = 0.8;
v = 1f * (230 - i) / (230 - 180);
} else if (i <= 180 && i > 79) {
h = 0.33; // green
s = 1f;
v = 1f * (180 - i) / (180 - 79);
} else {
h = 0.62; // blue
s = 1f;
v = 1f;
}
g2.setColor(new Color(Color.HSBtoRGB(h, s, v)));
g2.drawLine(0, 255 - i, 500, 255 - i);
}

这个想法是在 HSV 颜色空间而不是 RGB 中操作,其中 H(色调)和 S(饱和度)分量确定颜色圆的位置,V 确定“值”——颜色距黑点有多远。因此,您可以修复 H 和 S 分量并改变 V 以使颜色变浅或变深。

参见:https://docs.oracle.com/javase/8/docs/api/java/awt/Color.html#HSBtoRGB-float-float-float-

如果您为每种颜色找到更合适的 hs 常量,请随时评论/编辑。

关于java - 如何使用Java Color制作渐变颜色白-棕-绿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36330777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com