Как сгенерировать код RGB с целым числом - PullRequest
0 голосов
/ 04 апреля 2019

Мне нужно сгенерировать RGB между двумя цветами, учитывая целое число. Например, genRgb (73) даст мне код rgb между (255, 0, 0) и (0, 255, 0) на основе параметра 73.5. Таким образом, 0 будет соответствовать (255, 0, 0), а 90 будет соответствовать (0, 255, 0).

Я пробовал что-то вроде этого:

function toColor(num) {
    var b = 0
    if(num < 60) {
        var g = num
        var r = num/2
    } else {
        var r = num
        var g = num/2
    }
    return "rgba(" + [r, g, b].join(",") + ")";
}

но все коды rgb в конечном итоге выглядят очень похоже, и это не очень разумное решение.

Буду признателен за любую помощь в этом. Спасибо

1 Ответ

1 голос
/ 04 апреля 2019

Обратите внимание, когда num = 0, r = 255 & g = 0. Хотя значение num увеличивается, значение g также увеличивается.Но значение g уменьшается.Таким образом, мы можем действовать следующим образом.

function toColor(num){
    var r = 255 - Math.floor(255*num/100);
    var g = Math.floor(255*num/100);
    var b = 0;

    return "rgb(" + r + "," + g + "," + b + ")";
}

console.log(toColor(0));
console.log(toColor(50));
console.log(toColor(73.5));
console.log(toColor(100));
...