Я думаю, что вы хотите
- Градиент значений оттенков
- Преобразование из HSL (оттенок, насыщенность, яркость) в RGB
- RGB к #hex нотации, которую вы уже охватили
Градиент оттенков - это простая задача линейной интерполяции:
const length = 100;
const hueGradient = Array.from({length}, (v, k) => k/(length-1));
Пример преобразования из HSL в RGB можно найти в ответе на на этот вопрос . Используя это:
const saturation = 1.0;
const lightness = 0.5;
const rgbValues = hueGradient.map(hue => hslToRgb(hue, saturation, lightness));
В результате получается массив [R, G, B]
, который можно выразить как #rgb
значения:
const htmlRgbValues = rgbValues.map(([r,g,b]) => `#${htd(r)}${htd(g)}${htd(b)}`);
Есть большая вероятность, что вам не нужна таблица поиска, а вместо этого вы хотите интерполировать на лету, просто используйте
const htmlRgbValue = hslToRgb(x / x_max, saturation, lightness);