gpt4 book ai didi

Java:使用 HSV 循环特定颜色

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

所以我一直在尝试使用 HSV 在一定程度范围内循环颜色,但我似乎无法在颜色之间平滑过渡。理想情况下,我希望能够在特定的度数范围 (80-140) 内移动,并在 0.5 - 1 之间循环饱和度和值。老实说,我不知道从这里到哪里去,我很想知道如何做。

int[] colors = HsvToRgb(h,s ,v );

我使用的方法:

public static int[] HsvToRgb(double h, double S, double V) {
double H = h;
while (H < 0) {
H += 360;
}
while (H >= 360) {
H -= 360;
}
double R = 0, G = 0, B = 0;
if (V <= 0) {
R = G = B = 0;
} else if (S <= 0) {
R = G = B = V;
} else {
double hf = H / 60.0;
int i = (int) Math.floor(hf);
double f = hf - i;
double pv = V * (1 - S);
double qv = V * (1 - S * f);
double tv = V * (1 - S * (1 - f));
switch (i) {
case 0:
R = V;
G = tv;
B = pv;
break;
case 1:
R = qv;
G = V;
B = pv;
break;
case 2:
R = pv;
G = V;
B = tv;
break;
case 3:
R = pv;
G = qv;
B = V;
break;
case 4:
R = tv;
G = pv;
B = V;
break;
case 5:
R = V;
G = pv;
B = qv;
break;
case 6:
R = V;
G = tv;
B = pv;
break;
case -1:
R = V;
G = pv;
B = qv;
break;
}
}
int r = Clamp((int) (R * 255.0));
int g = Clamp((int) (G * 255.0));
int b = Clamp((int) (B * 255.0));
return new int[]{r, g, b};
}

public static int Clamp(int i) {
if (i < 0) {
return 0;
}
if (i > 255) {
return 255;
}
return i;
}

最佳答案

查看HSL Color 。它的 API 允许您使用以下方法轻松更改颜色:

  1. adjustHue – 指定颜色的程度
  2. adjustLuminance – 指定亮度的绝对百分比
  3. adjustSaturation – 指定饱和度的绝对百分比
  4. adjustShade – 调整阴影会给你一个更深的颜色。您可以通过指定调整百分比来控制颜色的深浅程度。
  5. adjustTone – 调整色调将为您提供更浅的颜色。您可以通过指定调整百分比来控制颜色应变亮的程度。

关于Java:使用 HSV 循环特定颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32026798/

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