【发布时间】:2019-07-01 00:14:03
【问题描述】:
对于一个 uni 项目,我正在制作自己的 RGB 到 HSV 颜色转换器。
这是我写的代码
function calcSat() {
s = (maxRGB() - minRGB()) / maxRGB();
if (isNaN(s)) {
s = 0;
}
}
function calcVal() {
v = maxRGB();
}
function calcHue() {
var dr = (maxRGB() - r) /
maxRGB() - minRGB();
dr = Math.abs(dr);
var dg = (maxRGB() - g) /
maxRGB() - minRGB();
dg = Math.abs(dg);
var db = (maxRGB() - b) /
maxRGB() - minRGB();
db = Math.abs(db);
console.log("red:" + r, "green:" + g, "blue:" + b);
console.log("red d:" + dr, "green d:" + dg, "blue d:" + db);
if (s == 0) {
h = 0;
} else if (r == maxRGB && g == minRGB) {
h = 5 + db;
} else if (r == maxRGB && g != minRGB) {
h = 1 - dg;
} else if (g == maxRGB && b == minRGB) {
h = dr + 1;
} else if (g == maxRGB && b != minRGB) {
h = 3 - db;
} else if (r == maxRGB) {
h = 3 + dg;
} else {
h = 5 - dr;
}
h = h * 60;
}
您还可以在此处访问该项目的副本:https://editor.p5js.org/eeu8cc/sketches/tYfnkWrA-
基本上,我正在尝试创建 3 个函数来计算 RGB 颜色的色调、饱和度和值。一切运行良好,但我的输出完全错误。
据我所知,我已经正确地复制了方程式。
对于那些感兴趣的人,屏幕截图来自一个 PDF,可以在here 找到。
任何帮助将不胜感激。
【问题讨论】:
标签: javascript colors rgb p5.js hsv