wangyu_2011 发表于 2016-1-3 20:34:24

颜色取色问题

由于多个数据显示,想用不同颜色来区分。但由于数据很多,想用一个函数生成颜色。要求输入序号,返回一个颜色,但要求返回的颜色能基本保证和前面的颜色都要有尽可能大的颜色差别,以便区分。
当然数量越多,区分会越少,但我希望能在当前数量的情况下尽可能的区别大一点。
我觉得可能背景色也是有关系的。如果能考虑最好,不能的话假定背景色为白色。
由于对颜色不了解,希望大家多多帮忙,有程序最好,没有一个想法或思路也可以。

NJ8888 发表于 2016-1-3 21:11:58

颜色描述不容易精确,比如青,有人说蓝 有人说绿,你不如用动物,十二生肖,不够再添驴 猫鱼等等图像还是容易记的

wangyu_2011 发表于 2016-1-3 21:19:21

NJ8888 发表于 2016-1-3 21:11
颜色描述不容易精确,比如青,有人说蓝 有人说绿,你不如用动物,十二生肖,不够再添驴 猫鱼等等图像还是容 ...

返回最好是RGB方式,这个方式在电脑比较通用。

shamiao 发表于 2016-1-3 22:45:31

你可能需要HSB色彩空间的帮助。HSB指色相、饱和度、亮度三个参数,分别代表颜色是哪种、颜色是饱满还是灰暗、亮度是发亮还是偏黑。

人眼对色相H(即颜色本身是哪种颜色)的差异敏感,而对饱和度S和亮度B的差异感受弱一些。

你可以取一个适宜的S和B(100%的S和B颜色太扎眼,一般取得低一些),然后用平均划分的方式取各个H值,就可以比较容易的获得易于区分的颜色。

例如这张图,是B=70%时,H(X轴)和S(Y轴)的关系图。图中的圈就是取定了S=90%之后,将整个H六等分之后得到的六种明显有差异的颜色。(注:H的单位是一个整圆周的角度,范围是0°~360°,也就是说H的最右端等同于H的最左端)



而HSB转RGB是有固定算法的,用就行。
页: [1]
查看完整版本: 颜色取色问题