RGB (Red Green Blue)颜色模型的主要目的是在电视和计算机等电子系统中对图像进行感知、表示和显示,HSL (色调饱和度光)是计算机图形研究人员在20世纪70年代设计的一种替代颜色模型,旨在更好地与人类视觉感知造色属性的方式保持一致。
下面是RGB和HSL的wiki文章。图形程序通常在HSL中进行计算,然后转换成大多数屏幕的首选格式: RGB。
其任务是编写一个函数/程序,该函数/程序以HSL作为输入并输出RGB。
您可以为I/O选择首选的表示形式,只要它们之间保持一致。
例如,它们可以是包含3个元素的数组/元组,也可以是具有3个属性(名为h、s和l )的对象,但我将接受其他聪明的变体,比如将hsl作为一个整数(丢失精度)并输出一个rgb整数。
可以假定输入在范围和格式上是安全的,这两者您都可以决定。我强烈建议使用范围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转换的公式可以找到这里:

这是一种可视化转换的好方法:

发布于 2017-12-09 23:44:32
发布于 2017-12-09 18:55:25
(x~Clear~c;d=Piecewise@Table[{(P=Permutations)[P@{c,x,0}][[42,i]],(i-1)<=#<i*p},{i,6}];c=(1-Abs[2#3-1])#2;x=c(1-Abs[Mod[#/(p=60),2]-1]);m=#3-c/2;(m+d)255)&https://codegolf.stackexchange.com/questions/150250
复制相似问题