一尘不染

产生独特的颜色

algorithm

我想将一些数据绘制到纹理中:连续很多项目。它们不是按顺序创建的,它们的大小可能都不同(请考虑一个内存堆)。每个数据项都是一个小矩形,我希望能够将它们区分开,因此我希望每个数据项都有独特的颜色。

现在,我可以使用rand()生成RGB值,并希望它们都不同,但是我怀疑在RGB空间中无法获得良好的分布。有没有比这更好的方法了?例如,在重复(几乎)重复之前通过不同颜色循环的一种好方法是什么?

颜色不必与项目中的任何数据相匹配。我只希望能够查看许多值,并发现它们是不同的,因为它们是相邻的。

我可以弄清楚,但是我认为这是一个有趣的问题。:)


阅读 181

收藏
2020-07-28

共1个答案

一尘不染

使用RGB颜色模型不是获得良好颜色混合的好方法。最好使用其他颜色模型来生成您的颜色,然后将其从该颜色模型转换为RGB。

我建议您改用HSV或HSL颜色模型,尤其是要更改Hue

如果要使用X个不同的颜色值,请将它们从0更改为360,步长为360除以X。

2020-07-28