Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function getColorForScore(score) {
- const red = [255, 0, 0]; // Красный
- const yellow = [255, 255, 0]; // Желтый
- const green = [0, 255, 0]; // Зеленый
- let startColor, endColor, factor;
- if (score <= 3) {
- // От 0 до 3 — красный
- startColor = red;
- endColor = yellow;
- factor = score / 3; // Интерполяция от красного к желтому
- } else if (score <= 6) {
- // От 4 до 6 — желтый
- startColor = yellow;
- endColor = green;
- factor = (score - 4) / 2; // Интерполяция от желтого к зеленому
- } else if (score <= 10) {
- // От 7 до 10 — зеленый
- startColor = green;
- endColor = green; // Зеленый остаётся зелёным
- factor = (score - 7) / 3; // Плавное достижение максимума
- }
- return interpolateColor(startColor, endColor, factor);
- }
- function interpolateColor(startColor, endColor, factor) {
- if (factor > 1) factor = 1;
- if (factor < 0) factor = 0;
- const result = startColor.slice();
- for (let i = 0; i < 3; i++) {
- result[i] = Math.round(result[i] + factor * (endColor[i] - startColor[i]));
- }
- return `rgb(${result[0]}, ${result[1]}, ${result[2]})`;
- }
- // Пример использования:
- const score = 5; // Текущие баллы
- const currentColor = getColorForScore(score);
- console.log(currentColor); // Выведет цвет для текущего балла
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement