Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在java中使用HSB创建平滑渐变

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

这是不起作用的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 08:00:30

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

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

https://stackoverflow.com/questions/67053303

复制
相关文章
在 Vue3中使用Fabric.js实现渐变(Gradient)效果,包括径向渐变radial
简单来说,如果你需要用 canvas 做特效或者做交互,那不妨试试 Fabric.js 这个库,它会使开发更加简单和直观。
德育处主任
2022/04/15
3.1K0
在 Vue3中使用Fabric.js实现渐变(Gradient)效果,包括径向渐变radial
使用HSB而不是RGB来定义颜色
有多种方法可以在代码中定义颜色。最常用的方法是指定三种基色的值 - 红色、绿色和蓝色 (RGB)。本文通过指定色调、饱和度和亮度 (HSB) 的值来探索替代机制的使用。可以以更直观的方式使用 HSB 属性来创建颜色搭配良好的调色板。
韦弦zhy
2023/01/06
2.7K0
使用HSB而不是RGB来定义颜色
在 Java 中如何使用 transient
Java语言的transient不像class、synchronized和其他熟悉的关键字那样众所周知,因而它会出现在一些面试题中。这篇文章我将为大家讲解transient。
哲洛不闹
2018/09/18
6K0
在 Java 中如何使用 transient
如何在Flutter应用程序中创建不同的渐变[Flutter专题20]
Flutter 可用于创建漂亮的 UI。因此,在今天的文章中,我们将看到如何在应用程序中创建不同的渐变 。
徐建国
2021/12/22
4.7K0
如何在Flutter应用程序中创建不同的渐变[Flutter专题20]
在Java 中安全使用接口引用
我使用Java 开发过很多项目,这其中包括一些Web 应用和Android 客户端应用。作为Android 开发人员,Java 就像我们的母语一样,但Android 世界是多元化的,并不是只有Java 才能用来写Android 程序,Kotlin 和Groovy 同样优秀,并且有着大量的粉丝。
程序亦非猿
2019/08/16
1.7K0
在Java 中安全使用接口引用
Photo by Joseph Maxim Reskp on Unsplash 我使用Java 开发过很多项目,这其中包括一些Web 应用和Android 客户端应用。作为Android 开发人员,J
小鄧子
2019/03/05
1.8K0
在nodejs中创建cluster
在前面的文章中,我们讲到了可以通过worker_threads来创建新的线程,可以使用child_process来创建新的子进程。本文将会介绍如何创建nodejs的集群cluster。
用户2323866
2021/06/22
3.4K0
在nodejs中创建cluster
在前面的文章中,我们讲到了可以通过worker_threads来创建新的线程,可以使用child_process来创建新的子进程。本文将会介绍如何创建nodejs的集群cluster。
程序那些事
2021/01/28
3.2K0
在 Mac OS X 中创建和使用内存盘
在 Windows 系统上一直使用 ImDisk 创建内存盘作为缓存, 将系统临时目录、 浏览器缓存等设置到内存盘, 这样做的好处是很明显的:
beginor
2020/08/10
3K0
在 Mac OS X 中创建和使用内存盘
在springboot工程中创建定时任务,使用quartz
使用springboot自带的schedule实现定时任务,不用引用任何第三方的工具包,只需要:
JQ实验室
2022/11/26
3.1K0
Java中File使用–创建文件「建议收藏」
1.错误示范1,输出的是创建文件夹 D:\filepath\test\test.txt。
全栈程序员站长
2022/09/10
8530
Java中File使用–创建文件「建议收藏」
【说站】LocalDateTime在java中的使用
1、LocalDateTime是一个日期-时间目标。您还可以将其视为LocalDate和LocalTime的组合。在操作上,也大致相同。
很酷的站长
2022/11/23
1.4K0
【说站】LocalDateTime在java中的使用
Gson在java中的简要使用
最近在把一个数组或字符串转化成对象时,使用了Google的Gson感觉不错,下面我以代码的形式详细举例来介绍
用户5166556
2019/04/16
1.8K0
Java使用IDEA创建Java工程
本讲主要Java初始篇,主要是介绍本次专栏使用的开发工具idea,并且创建helloWord工程让大家初次认识Java的主函数main函数,以及控制台输出语句System.out.println的使用,让大家对Java有初步印象,下一讲开始讲解Java的语法。
小明爱吃火锅
2023/09/23
6260
在IDEA中创建maven项目
  现在的JavaWeb项目中,绝大多数都是采用的maven结构的项目,而对于maven支持的最好的IDE开发工具为IDEA,所以说我就以在IDEA上为例来进行maven开发的讲解。
全栈程序员站长
2022/06/25
3K0
在IDEA中创建maven项目
在React 中,如何创建refs?
在类组件中,可以使用 React.createRef() 方法来创建 ref 对象。通常,在组件的构造函数中将 ref 赋值给类的实例属性。
王小婷
2023/10/10
2220
点击加载更多

相似问题

HSB平滑色转变

18

平滑渐变背景动画java

12

如何用RGB或HSB调节渐变颜色

12

在渐变之间平滑淡出

11

渐变不平滑

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文