我想知道是否有一个简单的算法(或 jQuery 插件)来选择可区分的颜色,最多约 20 种不同的颜色。如果没有,我在哪里可以找到一组可以直接使用的可区分颜色?
我的用例是为饼图生成不同的颜色。
最佳答案
我的想法是从HSV开始颜色模型并在具有最大饱和度和值的周边(色调)周围走动:
function hsvToRgb(h, s, v) {
//... see e.g.: http://snipplr.com/view/14590
}
function distinctColors(count) {
var colors = [];
for(hue = 0; hue < 360; hue += 360 / count) {
colors.push(hsvToRgb(hue, 100, 100));
}
return colors;
}
distinctColors(10)
产生:
[[255, 0, 0], [255, 153, 0], [204, 255, 0], [51, 255, 0], [0, 255, 102], [0, 255, 255], [0, 102, 255], [51, 0, 255], [204, 0, 255], [255, 0, 153]]
仅看 RGB 值很难分辨,但它们应该尽可能不同。我从 here 中获取了 hsvToRgb()
实现.
关于javascript - javascript中可区分的颜色生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8987319/