@chayns/colors
Version:
JavaScript utility functions for the calculation of colors for chayns
75 lines (74 loc) • 1.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = hsvToRgb1;
var _is = require("../../utils/is");
function hsvToRgb1(hsv) {
if (!(0, _is.isHsv)(hsv)) {
return null;
}
var s = hsv.s,
v = hsv.v;
var h = hsv.h;
h /= 360;
var r;
var g;
var b;
var i = Math.floor(h * 6);
var f = h * 6 - i;
var p = v * (1 - s);
var q = v * (1 - f * s);
var t = v * (1 - (1 - f) * s);
switch (i % 6) {
case 0:
r = v;
g = t;
b = p;
break;
case 1:
r = q;
g = v;
b = p;
break;
case 2:
r = p;
g = v;
b = t;
break;
case 3:
r = p;
g = q;
b = v;
break;
case 4:
r = t;
g = p;
b = v;
break;
case 5:
r = v;
g = p;
b = q;
break;
default:
r = v;
g = t;
b = p;
break;
}
if ('a' in hsv && (0, _is.isNumber)(hsv.a)) {
return {
r: r,
g: g,
b: b,
a: hsv.a
};
}
return {
r: r,
g: g,
b: b
};
}
//# sourceMappingURL=hsvToRgb1.js.map