Skip to content

Commit fb1a348

Browse files
committed
adding some functions with errors
1 parent 3343554 commit fb1a348

File tree

7 files changed

+82
-2
lines changed

7 files changed

+82
-2
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// Convert hex to RGB first
2+
function hexToHsl(hex) {
3+
// Convert hex to RGB first
4+
let r, g, b;
5+
if (hex.length === 4) {
6+
r = "0x" + hex[1] + hex[1];
7+
g = "0x" + hex[2] + hex[2];
8+
b = "0x" + hex[3] + hex[3];
9+
} else if (hex.length === 7) {
10+
r = "0x" + hex[1] + hex[2];
11+
g = "0x" + hex[3] + hex[4];
12+
b = "0x" + hex[5] + hex[6];
13+
}
14+
// Then to HSL
15+
r /= 255;
16+
g /= 255;
17+
b /= 255;
18+
let cmin = Math.min(r, g, b),
19+
cmax = Math.max(r, g, b),
20+
delta = cmax - cmin,
21+
h = 0,
22+
s = 0,
23+
l = 0;
24+
25+
if (delta === 0) h = 0;
26+
else if (cmax === r) h = ((g - b) / delta) % 6;
27+
else if (cmax === g) h = (b - r) / delta + 2;
28+
else h = (r - g) / delta + 4;
29+
30+
h = Math.round(h * 60);
31+
32+
if (h < 0) h += 360;
33+
34+
l = (cmax + cmin) / 2;
35+
s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));
36+
s = +(s * 100).toFixed(1);
37+
l = +(l * 100).toFixed(1);
38+
39+
console.log(
40+
"hsl(" + Math.round(h) + "," + Math.round(s) + "," + Math.round(l) + ")"
41+
);
42+
}

project/ts/functionality/converts/hslToHes.ts

Whitespace-only changes.

project/ts/functionality/converts/hslToRgb.ts

Whitespace-only changes.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/**
2+
*
3+
* @param r
4+
* @param g
5+
* @param b
6+
* @returns
7+
*/
8+
export default function rgbToHsl(r: number, g: number, b: number): number[] {
9+
(r /= 255), (g /= 255), (b /= 255);
10+
var max = Math.max(r, g, b),
11+
min = Math.min(r, g, b);
12+
var h,
13+
s,
14+
l = (max + min) / 2;
15+
16+
if (max == min) {
17+
h = s = 0;
18+
} else {
19+
var d = max - min;
20+
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
21+
switch (max) {
22+
case r:
23+
h = (g - b) / d + (g < b ? 6 : 0);
24+
break;
25+
case g:
26+
h = (b - r) / d + 2;
27+
break;
28+
case b:
29+
h = (r - g) / d + 4;
30+
break;
31+
}
32+
h /= 6;
33+
}
34+
35+
return [h, s, l];
36+
}

project/ts/functionality/main.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@ import randomColor from "./randoms/randomColor";
2222
import randomHsl from "./randoms/randomHsl";
2323
import isHappyNumber from "./numbers/isHappyNumber";
2424
import randomPassword from "./randoms/randomPassword";
25-
import rgbToHex from "./strings/rgbToHex";
26-
import hexToRgb from "./strings/hexToRgb";
25+
import rgbToHex from "./converts/rgbToHex";
26+
import hexToRgb from "./converts/hexToRgb";
27+
import hexToHsl from "./converts/hexToHsl";
2728

2829
const functionality = {
2930
sumOfArray,
@@ -52,6 +53,7 @@ const functionality = {
5253
randomPassword,
5354
rgbToHex,
5455
hexToRgb,
56+
hexToHsl,
5557
};
5658

5759
declare global {

0 commit comments

Comments
 (0)