mirror of
https://github.com/Doodle3D/Doodle3D-Slicer.git
synced 2025-03-14 08:31:43 +01:00
27 lines
526 B
JavaScript
27 lines
526 B
JavaScript
export function hslToRgb(h, s, l) {
|
|
let r;
|
|
let g;
|
|
let b;
|
|
|
|
if (s === 0) {
|
|
r = g = b = l;
|
|
} else {
|
|
const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
|
|
const p = 2 * l - q;
|
|
r = hueToRgb(p, q, h + 1 / 3);
|
|
g = hueToRgb(p, q, h);
|
|
b = hueToRgb(p, q, h - 1 / 3);
|
|
}
|
|
|
|
return [r, g, b];
|
|
}
|
|
|
|
function hueToRgb(p, q, t) {
|
|
if (t < 0) t += 1;
|
|
if (t > 1) t -= 1;
|
|
if (t < 1 / 6) return p + (q - p) * 6 * t;
|
|
if (t < 1 / 2) return q;
|
|
if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;
|
|
return p;
|
|
}
|