Основное назначение цветовой модели RGB (красный, зеленый, синий) - восприятие, представление и отображение изображений в электронных системах, таких как телевизоры и компьютеры.
HSL (Hue Saturation Lightness) - это альтернативная цветовая модель, разработанная в 1970-х годах исследователями компьютерной графики для более тесного соответствия с тем, как человеческое зрение воспринимает цветообразующие свойства
Вот вики-статьи для RGB и HSL . Обычно графические программы выполняют вычисления в HSL, а затем преобразовывают в предпочтительный формат для большинства экранов: RGB.
Задача состоит в том, чтобы написать функцию / программу, которая принимает HSL в качестве входа и выводит RGB.
Вы можете выбрать предпочтительное представление для ввода / вывода, если оно согласовано между ними.
Например, они могут быть массив / кортеж с 3 -х элементами или объект с 3 - мя свойств по имени h
, s
и l
, но я буду принимать другие умные варианты, как получение HSL в виде целого числа (потери точности) и вывод цветовых оттенков целого числа.
Можно предположить, что ввод безопасен по диапазону и формату, оба из которых вы можете решить. Я настоятельно рекомендую либо диапазоны 0-1 0-1 0-1
либо 0-360 0-100 0-100
для hsl, 0-1 0-1 0-1
либо 0-255 0-255 0-255
для rgb.
В каждом ответе требуется указать оба из вышеперечисленных и вносить различные варианты в свои ответы, если вы особенно ими гордитесь, даже если в них не меньше символов, чем в других ваших вариантах. Поместите самый маленький сверху.
Псевдо-тесты для 0-360 0-100 0-100
→0-255 0-255 0-255
h s l → r g b
0 0 0 → 0 0 0
90 56 17 → 43 68 19
202 19 39 → 81 104 118
72 55 26 → 88 103 30
Формулы для конвертации можно найти здесь :
Это хороший способ визуализации преобразования:
a-b
нотации неверно само по себе при работе с нецелыми значениями, но я бы сказал, что можно сделать вопрос более читабельным. Если кто-то еще будет жаловаться, я переосмыслю это, так что спасибо за указание на это
[0,360)
тогда :)
H
от0-360
это[0,360)
, было бы лучше , как написано0-359
?