Głównym celem modelu kolorów RGB (czerwony zielony niebieski) jest wykrywanie, reprezentacja i wyświetlanie obrazów w systemach elektronicznych, takich jak telewizory i komputery
HSL (Hue Saturation Lightness) to alternatywny model kolorów, zaprojektowany w latach 70. XX wieku przez badaczy grafiki komputerowej w celu ściślejszego dopasowania do sposobu, w jaki widzenie ludzkie postrzega atrybuty tworzenia kolorów
Oto artykuły wiki dla RGB i HSL . Programy graficzne często wykonują obliczenia w HSL, a później konwertują do preferowanego formatu dla większości ekranów: RGB.
Zadanie polega na napisaniu funkcji / programu, który pobiera HSL jako dane wejściowe i wyjściowe RGB.
Możesz wybrać preferowaną reprezentację dla We / Wy, o ile jest ona spójna między nimi.
Na przykład, mogą być tablicą / krotka z 3 elementów lub obiekt z 3 wymienionych właściwości h
, s
i l
, ale ja przyjąć inne pomysłowe wariacje, jak otrzymaniu HSL jako liczba całkowita (tracąc precyzji) oraz wyprowadzanie rgb całkowitą.
Można założyć, że dane wejściowe są bezpieczne w zakresie i formacie, o których można zdecydować. Zdecydowanie sugeruję albo zakresy, 0-1 0-1 0-1
albo 0-360 0-100 0-100
dla hsl i 0-1 0-1 0-1
lub 0-255 0-255 0-255
dla rgb.
Każda odpowiedź jest wymagana do określenia obu powyższych odpowiedzi i umieszczania różnych odmian w swoich odpowiedziach, jeśli jesteś z nich szczególnie dumny, nawet jeśli nie mają mniej znaków niż inne odmiany. Umieść najmniejszy na wierzchu.
Pseudo-przypadki dla 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
Formuły konwersji można znaleźć tutaj :
To dobry sposób na wizualizację konwersji:
a-b
notacji samo w sobie jest niewłaściwe w przypadku wartości niecałkowitych, ale powiedziałbym, że lepiej jest zadawać pytanie bardziej czytelnym. Jeśli ktoś jeszcze narzeka, to przemyślę to, więc dziękuję za zwrócenie na to uwagi
[0,360)
tego czasu :)
H
o0-360
to[0,360)
, że będzie lepiej napisany jako0-359
?