这是我多次伪解决但从未完全找到解决方案的问题。
问题是想出一种方法来生成N颜色,尽可能区分N是一个参数。
N
我对此的第一个想法是“如何在空间中生成 N 个向量,使彼此之间的距离最大化”。
您可以看到 RGB(或您使用的构成颜色空间基础的任何其他比例)只是向量。看一眼随机点选取。一旦你有了一组最大化分开的向量,你可以将它们保存在哈希表或其他东西中以供以后使用,然后对它们执行随机旋转以获得你想要的彼此最大分开的所有颜色!
更多地思考这个问题,最好将颜色以线性方式映射,可能按字典顺序 (0,0,0) → (255,255,255),然后均匀分布。
我真的不知道这会发挥多大作用,但应该如此,让我们说:
n = 10
我们知道有 16777216 种颜色 (256^3)。
We can use Buckles Algorithm 515 to find the lexicographically indexed color.. You'll probably have to edit the algorithm to avoid overflow and probably add some minor speed improvements.