-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ return ("#" + rHex + gHex + bHex).toUpperCase();
+ }
+
+ function rgbToHSV(r, g, b, update) {
+ let rperc, gperc, bperc, max, min, diff, pr, hnew, snew, vnew;
+ rperc = r / 255;
+ gperc = g / 255;
+ bperc = b / 255;
+ max = Math.max(rperc, gperc, bperc);
+ min = Math.min(rperc, gperc, bperc);
+ diff = max - min;
+
+ vnew = max;
+ vnew == 0 ? (snew = 0) : (snew = diff / max);
+
+ for (let i = 0; i < 3; i++) {
+ if ([rperc, gperc, bperc][i] === max) {
+ pr = i;
+ break;
+ }
+ }
+ if (diff == 0) {
+ hnew = 0;
+ if (update) {
+ h = hnew;
+ s = snew;
+ v = vnew;
+ hueChange();
+ return;
+ } else {
+ return { h: hnew, s: snew, v: vnew };
+ }
+ } else {
+ switch (pr) {
+ case 0:
+ hnew = (60 * (((gperc - bperc) / diff) % 6)) / 360;
+ break;
+ case 1:
+ hnew = (60 * ((bperc - rperc) / diff + 2)) / 360;
+ break;
+ case 2:
+ hnew = (60 * ((rperc - gperc) / diff + 4)) / 360;
+ break;
+ }
+ if (hnew < 0) hnew += 6;
+ }
+
+ if (update) {
+ h = hnew;
+ s = snew;
+ v = vnew;
+ hueChange();
+ } else {
+ return { h: hnew, s: snew, v: vnew };
+ }
+ }
+
+
+
+
+
-
+
+
+
+
+
-
+
+
{hexValue}
+
+
+
-
-
+
-
-
- {r}
-R
-
-
-
- {g}
-G
-
-
+ {b}
-B
-
+
+
+
-
+
+
+
+
+
+
+
+ {hexValue}
+
+
+
+
+
+ {r}
+R
+
+
+
+ {g}
+G
+
+
+ {b}
+B
+