hsbToHex function
Implementation
String hsbToHex(HSB hsb) {
var r, g, b, i, f, p, q, t;
final h = hsb.h / 360;
final s = hsb.s / 100;
final v = hsb.b / 100;
i = (h * 6).floor();
f = h * 6 - i;
p = v * (1 - s);
q = v * (1 - f * s);
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;
}
Function toHex = (double x) {
var hex = (x * 255).round().toRadixString(16);
return hex.length == 1 ? '0' + hex : hex;
};
return "#" + toHex(r) + toHex(g) + toHex(b);
}