algorithm - 创建色轮的函数

标签 algorithm language-agnostic colors color-space

<分区>

这是我伪解决了很多次但从未完全找到解决方案的问题。

问题是想出一种方法来生成 N 颜色,这些颜色在 N 是参数的情况下尽可能可区分。

最佳答案

我的第一个想法是“如何在空间中生成 N 个向量,使彼此之间的距离最大化。”

您可以看到 RGB(或您使用的构成颜色空间基础的任何其他比例)只是向量。看看Random Point Picking .一旦你有了一组最大距离的向量,你可以将它们保存在哈希表或其他东西中以备后用,只需对它们执行随机旋转以获得你想要的彼此最大距离的所有颜色!

这个问题想多了,最好把颜色按线性方式映射,可能是(0,0,0) → (255,255,255) 字典序,然后均匀分布。

我真的不知道这会有多好,但应该是因为,让我们说:

n = 10

我们知道我们有 16777216 种颜色 (256^3)。

我们可以使用Buckles Algorithm 515找到字典索引的颜色。 \frac {\binom {256^3} {3}} {n} * i .您可能必须编辑算法以避免溢出,并可能添加一些小的速度改进。

关于algorithm - 创建色轮的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/180/

相关文章:

performance - 如果有的话,什么时候循环展开仍然有用?

algorithm - 怎样用最简单的方法求某次幂的个位数

r - 在R中生成相同颜色的不同阴影

colors - 谷歌图表颜色

iphone - iPhone 上导航栏按钮的默认颜色是什么?

java - 用于数据库持久化的多算法密码哈希结构

algorithm - 合并大小为 n 的 k 个排序数组的下界

c++ - 使用动态规划改变的所有解决方案

c++ - block 拼图求解C++算法

language-agnostic - 开发简单的序列号生成器/验证器的好方法是什么?