首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在java中使用HSB创建平滑渐变

在java中使用HSB创建平滑渐变
EN

Stack Overflow用户
提问于 2021-04-12 13:56:29
回答 1查看 69关注 0票数 0

我正在尝试用greenfoot java创建一个排序算法可视化工具,其中的一个数组以柱状图的形式显示。我想要它是彩色的,所以我使用了一种颜色渐变,就像这个视频https://www.youtube.com/watch?v=qlvBsYyGIDo中所显示的那样

这是不起作用的代码:

代码语言:javascript
运行
复制
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
}

但是它产生的颜色看起来像这样:

如何创建平滑渐变,从红色->黄色->绿色->青色->蓝色->洋红色?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-12 16:00:30

“谢谢。”托马斯说。事实证明,Color.getHSBColor()的所有三个值都在0-1之间,高于这个值会产生~未定义的行为~。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67053303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档