给定一个区间[min,max],这个区间内,最小值min是红色, 最大值max是蓝色(红-->蓝),给一个在区间只能的值value, 这个value 对应什么颜色?
红色-》蓝色过度
rgb(255, 0, 0), rgb(255, 255, 0), rgb(0, 255, 0), rgb(0, 255, 255 rgb(0, 0, 255)
/**
* 根据值的占比 计算属于那种颜色颜色
* x 实际值
* min 最小值
* max 最大值
*/
function getredorblueColor(x, min, max) {
if (min < max) {
let x1 = (max - min) / 4;
let x2 = (max - min) / 2;
let x3 = 3 / 4 * (max - min);
let x4 = max - min;
let r, g, b
if (x <= x1) {
r = 255;
g = 255 / x1 * x
b = 0
}
if (x1 < x && x <= x2) {
r = 255 / (x1 - x2) * x + 255 / (x2 - x1) * x2
}
if (x > x2) {
r = 0;
}
if (x1 < x && x <= x3) {
g = 255
}
if (x > x3) {
g = 255 / (x3 - x4) * x + 255 / (x4 - x3) * x4
}
if (x <= x2) {
b = 0
}
if (x2 < x && x <= x3) {
b = 255 / (x3 - x2) * x + 255 / (x2 - x3) * x2
}
if (x > x3) {
b = 255
}
return [r, g, b]
} else {
// 蓝
return [0, 0, 255]
}
}