最佳答案
根据您在评论中提供的网站(sessions.edu/color-calculator) 您正在使用类似的颜色模式:当您转换 RGB 颜色 HSB/HSV 表示形式时,类似的颜色有意义,我将您重定向到此站点以了解该系统表示颜色的方式 http://colorizer.org/ .
相似色是三色组:左一、主一、右一 在 HSB 表示中,我定义了主要的表示形式:[H, S, B]
- H 色调是角度
- S 饱和度在 0 和 1 之间 float
- B 亮度/值在 0 和 1 之间 float
所以 leftOne 如果定义为:[H - 30, S, B] 而 rightOne 如果定义为:[H + 30, S, B]
在 Java 中,如果您使用 java.awt.color API,则色调是 float 值(0 到 1 之间),因此只需将角度除以 360 ...
这里是如何在 Java 中获取此结果的片段:
double anglerotation = 1d / 12; // 30 /360
Color mainColor = new Color(174, 235, 18);
float[] hsbLeftColor = Color.RGBtoHSB(mainColor.getRed(), mainColor.getGreen(), mainColor.getBlue(), null);
hsbLeftColor[0] -= anglerotation;
Color leftColor = new Color(Color.HSBtoRGB(hsbLeftColor[0], hsbLeftColor[1], hsbLeftColor[2]));
float[] hsbRightColor = Color.RGBtoHSB(mainColor.getRed(), mainColor.getGreen(), mainColor.getBlue(), null);
hsbRightColor[0] += anglerotation;
Color rightColor = new Color(Color.HSBtoRGB(hsbRightColor[0], hsbRightColor[1], hsbRightColor[2]));
关于java - 搜索当前颜色的和谐颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51010372/