added hexGradiant function for value based color readouts
This commit is contained in:
parent
a4d3afd265
commit
2ca87fbb55
@ -151,3 +151,34 @@ class buiWindow {
|
||||
function close () {
|
||||
}
|
||||
}
|
||||
|
||||
function hexGradiant(
|
||||
value=1,
|
||||
low=0,
|
||||
high=100,
|
||||
rwave = n => (100 * Math.sin(n / 10)) + (n - 30) * 2,
|
||||
gwave = n => (n - 50) * (n - 75) * (0 - 1) / 10 + 100,
|
||||
bwave = n => (n - 25) * (n - 25) * (0 - 1) / 5 + 100
|
||||
) {
|
||||
var range = Math.max(0,Math.min(1,(value - low)/(high - low)))*100;
|
||||
|
||||
var r = rwave(range) * 2;
|
||||
var g = gwave(range) * 2;
|
||||
var b = bwave(range) * 2;
|
||||
|
||||
var brightness = 270; // out of 768 (white)
|
||||
|
||||
// Normaliz rgb values to within the brightness level
|
||||
if (r+g+b < brightness) {
|
||||
brightness -= (r+g+b);
|
||||
r += (brightness/3);
|
||||
g += (brightness/3);
|
||||
b += (brightness/3);
|
||||
}
|
||||
|
||||
return "#"+
|
||||
parseInt(Math.min(Math.max(0,r),255).toFixed(0)).toString(16).padStart(2,"0")+
|
||||
parseInt(Math.min(Math.max(0,g),255).toFixed(0)).toString(16).padStart(2,"0")+
|
||||
parseInt(Math.min(Math.max(0,b),255).toFixed(0)).toString(16).padStart(2,"0");
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user