多语言展示
当前在线:1237今日阅读:84今日分享:32

【Mathematica】RGB色彩与色相值的转化

给出一种颜色的RGB数值,怎么算出对应的色相h的值?这有严格的公式。
工具/原料
1

电脑

2

Mathematica

方法/步骤
1

转换函数如下图:

2

先画一个RGBColor[{1,1/2,0}]的圆盘:c = {1, 1/2,0}; Graphics[{RGBColor[c], Disk[]}]

3

把第二幅图的颜色替换为色相:Graphics[{Hue[h[c]/360], Disk[]}]可以看到,色彩看起来一样。

4

如果换一个RGB颜色:c = {1, 1/2, 1/3};看起来就不一样了。这是怎么回事?

5

这是因为色彩的饱和度和亮度可能不相同。RGB转化为饱和度的函数如下图:

6

而亮度,则用{R,G,B}的最大值来表示。再看下面的图:

7

再试试:c = {1/5, 1/2, 1/3};

推荐信息