我正在尝试用greenfoot java创建一个排序算法可视化工具,其中的一个数组以柱状图的形式显示。我想要它是彩色的,所以我使用了一种颜色渐变,就像这个视频https://www.youtube.com/watch?v=qlvBsYyGIDo中所显示的那样
这是不起作用的代码:
Pseudocode{
int[50] arr={1,2,3...}
for(int i:arr)
rect.color=getColor(i,arr.length)
}
private static Color getColor(int value, int length){
float h=((float)value/(float)length);//goes from 0-1
System.out.println(value+" "+length+" "+h);
java.awt.Color rgb=java.awt.Color.getHSBColor(h,255,255);
int r=rgb.getRed();
int g=rgb.getGreen();
int b=rgb.getBlue();
System.out.println(rgb+" "+r+" "+g+" "+b);
return new Color(r,g,b);//greenfoot.Color, not java.awt.Color
}
但是它产生的颜色看起来像这样:
如何创建平滑渐变,从红色->黄色->绿色->青色->蓝色->洋红色?
发布于 2021-04-12 08:00:30
“谢谢。”托马斯说。事实证明,Color.getHSBColor()的所有三个值都在0-1之间,高于这个值会产生~未定义的行为~。
https://stackoverflow.com/questions/67053303
复制相似问题