Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何确保多个随机生成的颜色不';色调不是太近吗?_Javascript_Algorithm_Random - Fatal编程技术网

Javascript 如何确保多个随机生成的颜色不';色调不是太近吗?

Javascript 如何确保多个随机生成的颜色不';色调不是太近吗?,javascript,algorithm,random,Javascript,Algorithm,Random,我们正在开发一个可以生成多种随机颜色的应用程序,我们需要确保没有两种颜色靠得很近。有什么好的库或算法吗?(JavaScript)不,没有这样的库。您可以轻松地在RGB、CMYK和/或HST表示之间进行转换,但这些表示无法很好地映射到人类视觉系统的感知。对于“亲密度”的任何认知定义,在计算亲密度度量所需的代数中都会有显著的变化 为了举例说明,请研究一个典型的。您可以看到基于感知的工具与HST系统的区别。蒙塞尔颜色“轮子”中的三维映射显示了我们感知中的不对称性。JND(只是明显的差异)可能是一个地方

我们正在开发一个可以生成多种随机颜色的应用程序,我们需要确保没有两种颜色靠得很近。有什么好的库或算法吗?(JavaScript)

不,没有这样的库。您可以轻松地在RGB、CMYK和/或HST表示之间进行转换,但这些表示无法很好地映射到人类视觉系统的感知。对于“亲密度”的任何认知定义,在计算亲密度度量所需的代数中都会有显著的变化

为了举例说明,请研究一个典型的。您可以看到基于感知的工具与HST系统的区别。蒙塞尔颜色“轮子”中的三维映射显示了我们感知中的不对称性。JND(只是明显的差异)可能是一个地方的一个度,另一个地方的5度

你也有个体差异的复杂性——不仅仅是各种类型的遗传色盲,还有人与人之间的日常差异。1/5度的差异不是绝对的,只是我对“临界点”的回忆,50%的人会在这个点上注意到差异

我每天都这样生活:我的配偶是个艺术家,所以我们对颜色描述很敏感。我对光谱中蓝绿色部分的变化更敏感;我的另一半有时会否决我选择的红色衣服


建议的解决方案

我猜你会用它来表示某种图形,你只是想让你的视觉单位多样化,容易区分

不要“随机生成”你的颜色。相反,设计一个预定义颜色的大调色板。将它们放在某种相似矩阵中(简单的HST邻接可能会很好地为您服务)。选择您的颜色作为一组或连续,但要平衡它们在矩阵中的分布情况,在每个矩阵周围保持一个“缓冲区”。例如,如果您选择了一种特定的颜色,那么您将不会在该颜色的2个矩阵单位内选择任何其他颜色


你甚至可以咨询一些关于平面设计的网站来获得调色板的想法。这可以通过使颜色不仅易于区分,而且结合起来也令人愉快来增强您的应用程序。

我们需要确保没有两种颜色靠得很近。
。你能进一步解释一下你的意思吗?页面上的元素是否靠得很近?颜色的色调?什么定义了事物是否接近?你的问题没有给我们任何方向。请确保在提问之前阅读。我同意@cb64的可能副本,“close”太主观了,因此从RGB中获取色调,然后以您的方式进行比较似乎是一种方法。使用HSL而不是RGB。查看此问题/答案: